Nom de l'instruction : scanf
Type : entrée / sortie
Bibliothèque : stdio.h
Syntaxe : scanf( "chaîne de format", liste d'adresses )
Action : provoque la saisie au clavier de valeur pour les ranger aux adresses indiquées. L'instruction bloque le programme jusqu'à la saisie effective d'une ou plusieurs valeurs.
La chaîne de format sert à spécifier des champs typés.
Champ : Les champs sont spécifiés à l'aide du caractère % suivit de lettres servant à spécifier comment interpréter les valeurs saisies avant de les stocker aux adresses spécifiées. Ainsi :
%d spécifie un champ pour des valeurs de type int
%f spécifie un champ pour des valeurs de type float
%c spécifie un champ pour des valeurs de type char
Ce sont les mêmes champs que pour l'instruction printf
Remarques :
- Il peut y avoir d'autres caractères dans la chaîne de format que des champs. Par exemple il peut y avoir un caractère de séparation si l'on saisi deux valeurs dans le même scanf.
- Il peut y avoir un espace avant un champ %c pour éviter de saisir par erreur le dernier caractère frappé au clavier (en général la touche entrée).
Exemple :
char car ;
float reel ;
scanf(" %c ; %f", &car, &reel ) ;
Provoque la saisie de deux valeurs, l'une de type char ( = un caractère alphanumérique), l'autre une valeur réelle.
La saisie des deux valeurs implique de les séparer lors de la saisie au clavier par le caractère ; . La première saisie est stockée à l'adresse de la variable car, l'autre à l'adresse de la variable reel.
Noter l'espace devant le " %c", c'est une astuce pour que le scanf ne prenne pas le premier caractère restant dans le tampon du clavier.