scanf, fscanf, vscanf, vfscanf - Conversion d’entrée de fichier
formaté
Bibliothèque C standard (
libc,
-lc)
#include <stdio.h>
int scanf(const char *restrict format, ...);
int fscanf(FICHIER *restrict flux,
const char *restrict format, ...);
#include <stdarg.h>
int vscanf(const char *restrict format, va_list ap);
int vfscanf(FICHIER *restrict flux,
const char *restrict format, va_list ap);
vscanf(),
vfscanf() :
_ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L
Les famille de fonctions
scanf() analysent les entrées comme
sscanf(3), mais lisent à partir d'un'
FICHIER. Il est
très difficile d'utiliser ces fonctions correctement et il est
préférable de lire des lignes entières avec
fgets(3) ou
getline(3) et de les analyser plus tard avec
sscanf(3) ou des fonctions plus spécialisées telles que
strtol(3).
La fonction
scanf() lit ses données depuis le flux d'entrée
standard
stdin,
fscanf() lit ses entrées depuis le flux
pointé par
flux.
La fonction
vfscanf() est analogue à
vfprintf(3) et lit ses
arguments depuis le flux pointé par
flux en utilisant une liste
variable d'arguments de pointeurs, consultez
stdarg(3). La fonction
vscanf() est analogue à
vprintf(3) et lit à partir
de l'entrée standard.
En cas de succès, ces fonctions renvoient le nombre
d'éléments d'entrée correctement mis en correspondance et
affectés. Ce nombre peut être plus petit que le nombre
d'éléments attendus, et même être nul, dans le cas
d'une erreur précoce de mise en correspondance.
La valeur
EOF est renvoyée si la fin de l'entrée est
atteinte avant la première conversion réussie ou si un
échec de correspondance survient.
EOF est également
renvoyé si une erreur de lecture survient, auquel cas l'indicateur
d'erreur pour le flux (consultez
ferror(3)) est positionné et
errno est remplie en conséquence
- EAGAIN
- Le descripteur de fichier flux sous-jacent est non
bloquant et l'opération de lecture bloquerait.
- EBADF
- Le descripteur de fichier flux sous-jacent n'est pas
valable ou bien n'est pas ouvert en lecture.
- EILSEQ
- La séquence d'octets en entrée ne constitue
pas un caractère valable.
- EINTR
- La lecture a été interrompue par un
signal ; consultez signal(7).
- EINVAL
- Pas suffisamment de paramètres ou bien format
est NULL.
- ENOMEM
- Plus assez de mémoire.
Pour une explication des termes utilisés dans cette section, consulter
attributes(7).
Interface |
Attribut |
Valeur |
scanf(), fscanf(), vscanf(), vfscanf() |
Sécurité des threads |
MT-Safe locale |
Ces fonctions sont conformes à C99 et POSIX.1-2001.
fgets(3),
getline(3),
sscanf(3)
La traduction française de cette page de manuel a été
créée par Christophe Blaess
<
https://www.blaess.fr/christophe/>, Stéphan Rafin
<
[email protected]>, Thierry Vignaud
<
[email protected]>, François Micaux, Alain Portal
<
[email protected]>, Jean-Philippe Guérard
<
[email protected]>, Jean-Luc Coulon (f5ibh)
<
[email protected]>, Julien Cristau
<
[email protected]>, Thomas Huriaux <
[email protected]>,
Nicolas François <
[email protected]>, Florentin
Duneau <
[email protected]>, Simon Paillard
<
[email protected]>, Denis Barbier
<
[email protected]>, David Prévot <
[email protected]>,
Frédéric Hantrais <
[email protected]>, Grégoire
Scano <
[email protected]> et Jean-Pierre Giraud
<
[email protected]>
Cette traduction est une documentation libre ; veuillez vous reporter
à la
GNU
General Public License version 3 concernant les conditions de copie
et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.
Si vous découvrez un bogue dans la traduction de cette page de manuel,
veuillez envoyer un message à
[email protected]