Programmer en langage C
232
© Éditions Eyrolles
SCANF
int scanf (const char * format, ...)
Lit des caractères sur l’entrée standard (stdin), les convertit en tenant
compte du format indiqué et affecte les valeurs obtenues aux différentes
variables de la liste d’arguments (...). Fournit le nombre de valeurs lues
convenablement ou la valeur EOF si une erreur s’est produite ou si une fin de
fichier a été rencontrée avant qu’une seule valeur ait pu être lue.
Notez que :
scanf (format, ...)
est équivalent à :
fscanf (stdin, format, ...)
SSCANF
int sscanf (char * ch, const char * format, ...)
Lit des caractères dans la chaîne d’adresse ch, les convertit en tenant
compte du format indiqué et affecte les valeurs obtenues aux différentes
variables de la liste d’arguments (...). Fournit le nombre de valeurs lues convenablement.
Règles communes à ces fonctions
a) Il existe six caractères dits « séparateurs », à savoir : l’espace, la tabulation horizontale
(\t), la fin de ligne (\n), le retour chariot (\r), la tabulation verticale (\v) et le changement
de page (\f). En pratique, on se limite généralement à l’espace et à la fin de ligne.
b) L’information est recherchée dans un tampon, image d’une ligne. Il y a donc une certaine
désynchronisation entre ce que l’on frappe au clavier (lorsque l’unité standard est connectée à
ce périphérique) et ce que lit la fonction. Lorsqu’il n’y a plus d’information disponible dans le
tampon, il y a déclenchement de la lecture d’une nouvelle ligne. Pour décrire l’exploration de
ce tampon, il est plus simple de faire intervenir un indicateur de position que nous nommerons
pointeur.
c) La rencontre dans le format d’un caractère séparateur provoque l’avancement du pointeur
jusqu’à la rencontre d’un caractère qui ne soit pas un séparateur.
d) La rencontre dans le format d’un caractère différent d’un séparateur (et de %) provoque la
prise en compte du caractère courant (celui désigné par le pointeur). Si celui-ci correspond au
caractère du format, la fonction poursuit son exploration du format. Dans le cas contraire, il y
a arrêt prématuré de la fonction.
Delannoy Livre.book Page 232 Mercredi, 6. mai 2009 4:27 16
232
© Éditions Eyrolles
SCANF
int scanf (const char * format, ...)
Lit des caractères sur l’entrée standard (stdin), les convertit en tenant
compte du format indiqué et affecte les valeurs obtenues aux différentes
variables de la liste d’arguments (...). Fournit le nombre de valeurs lues
convenablement ou la valeur EOF si une erreur s’est produite ou si une fin de
fichier a été rencontrée avant qu’une seule valeur ait pu être lue.
Notez que :
scanf (format, ...)
est équivalent à :
fscanf (stdin, format, ...)
SSCANF
int sscanf (char * ch, const char * format, ...)
Lit des caractères dans la chaîne d’adresse ch, les convertit en tenant
compte du format indiqué et affecte les valeurs obtenues aux différentes
variables de la liste d’arguments (...). Fournit le nombre de valeurs lues convenablement.
Règles communes à ces fonctions
a) Il existe six caractères dits « séparateurs », à savoir : l’espace, la tabulation horizontale
(\t), la fin de ligne (\n), le retour chariot (\r), la tabulation verticale (\v) et le changement
de page (\f). En pratique, on se limite généralement à l’espace et à la fin de ligne.
b) L’information est recherchée dans un tampon, image d’une ligne. Il y a donc une certaine
désynchronisation entre ce que l’on frappe au clavier (lorsque l’unité standard est connectée à
ce périphérique) et ce que lit la fonction. Lorsqu’il n’y a plus d’information disponible dans le
tampon, il y a déclenchement de la lecture d’une nouvelle ligne. Pour décrire l’exploration de
ce tampon, il est plus simple de faire intervenir un indicateur de position que nous nommerons
pointeur.
c) La rencontre dans le format d’un caractère séparateur provoque l’avancement du pointeur
jusqu’à la rencontre d’un caractère qui ne soit pas un séparateur.
d) La rencontre dans le format d’un caractère différent d’un séparateur (et de %) provoque la
prise en compte du caractère courant (celui désigné par le pointeur). Si celui-ci correspond au
caractère du format, la fonction poursuit son exploration du format. Dans le cas contraire, il y
a arrêt prématuré de la fonction.
Delannoy Livre.book Page 232 Mercredi, 6. mai 2009 4:27 16
