scanf(3) Library Functions Manual scanf(3) NOM scanf, fscanf, vscanf, vfscanf - Conversion d'entree de fichier formate BIBLIOTHEQUE Bibliotheque C standard (libc, -lc) SYNOPSIS #include int scanf(const char *restrict format, ...); int fscanf(FICHIER *restrict flux, const char *restrict format, ...); #include int vscanf(const char *restrict format, va_list ap); int vfscanf(FICHIER *restrict flux, const char *restrict format, va_list ap); Exigences de macros de test de fonctionnalites pour la glibc (consulter feature_test_macros(7)) : vscanf(), vfscanf() : _ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L DESCRIPTION The scanf() family of functions scans formatted input like sscanf(3), but read from a FILE. It is very difficult to use these functions correctly, and it is preferable to read entire lines with fgets(3) or getline(3) and parse them later with sscanf(3) or more specialized functions such as strtol(3). La fonction scanf() lit ses donnees depuis le flux d'entree standard stdin, fscanf() lit ses entrees depuis le flux pointe par flux. La fonction vfscanf() est analogue a vfprintf(3) et lit ses arguments depuis le flux pointe par flux en utilisant une liste variable d'arguments de pointeurs, consultez stdarg(3). La fonction vscanf() est analogue a vprintf(3) et lit a partir de l'entree standard. VALEUR RENVOYEE En cas de succes, ces fonctions renvoient le nombre d'elements d'entree correctement mis en correspondance et affectes. Ce nombre peut etre plus petit que le nombre d'elements attendus, et meme etre nul, dans le cas d'une erreur precoce de mise en correspondance. La valeur EOF est renvoyee si la fin de l'entree est atteinte avant la premiere conversion reussie ou si un echec de correspondance survient. EOF est egalement renvoye si une erreur de lecture survient, auquel cas l'indicateur d'erreur pour le flux (consultez ferror(3)) est positionne et errno est remplie en consequence ERREURS EAGAIN Le descripteur de fichier flux sous-jacent est non bloquant et l'operation 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 sequence d'octets en entree ne constitue pas un caractere valable. EINTR La lecture a ete interrompue par un signal ; consultez signal(7). EINVAL Pas suffisamment de parametres ou bien format est NULL. ENOMEM Plus assez de memoire. ATTRIBUTS Pour une explication des termes utilises dans cette section, consulter attributes(7). +--------------------------+--------------------------+----------------+ |Interface | Attribut | Valeur | +--------------------------+--------------------------+----------------+ |scanf(), fscanf(), | Securite des threads | MT-Safe locale | |vscanf(), vfscanf() | | | +--------------------------+--------------------------+----------------+ STANDARDS C11, POSIX.1-2008. HISTORIQUE C99, POSIX.1-2001. CAVEATS These functions make it difficult to distinguish newlines from other white space, This is especially problematic with line-buffered input, like the standard input stream. These functions can't report errors after the last non-suppressed conversion specification. BOGUES It is impossible to accurately know how many characters these functions have consumed from the input stream, since they only report the number of successful conversions. For example, if the input is "123\n a", scanf("%d %d", &a, &b) will consume the digits, the newline, and the space, but not the letter a. This makes it difficult to recover from invalid input. VOIR AUSSI fgets(3), getline(3), sscanf(3) TRADUCTION La traduction francaise de cette page de manuel a ete creee par Christophe Blaess , Stephan Rafin , Thierry Vignaud , Francois Micaux, Alain Portal , Jean-Philippe Guerard , Jean-Luc Coulon (f5ibh) , Julien Cristau , Thomas Huriaux , Nicolas Francois , Florentin Duneau , Simon Paillard , Denis Barbier , David Prevot , Frederic Hantrais , Gregoire Scano et Jean-Pierre Giraud Cette traduction est une documentation libre ; veuillez vous reporter a la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITE LEGALE. Si vous decouvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message a . Pages du manuel de Linux 6.06 9 decembre 2023 scanf(3)