© Éditions Eyrolles
57
chapitre n° 4
Les entrées-sorties conversationnelles
2.1 Les principaux codes de conversion de scanf
Pour chaque code de conversion, nous précisons le type de la lvalue correspondante.
c
char
d
int
u
unsigned int
hd
short int
hu
unsigned short
ld
long int
lu
unsigned long
f ou e
loat écrit indifféremment dans l’une des deux notations : décimale (éventuellement sans point, c’est-à-dire comme un entier) ou exponentielle (avec la lettre e
ou E)
lf ou le double avec la même présentation que ci-dessus
s
chaîne de caractères dont on fournit l’adresse (notion qui sera étudiée ultérieurement)
Contrairement à ce qui se passait pour printf, il ne peut plus y avoir ici de conversion automatique puisque l’argument transmis à scanf est l’adresse d’un emplacement mémoire. C’est
ce qui justifie l’existence d’un code hd par exemple pour le type short ou encore celle des
codes lf et le pour le type double.
2.2 Premières notions de tampon et de séparateurs
Lorsque scanf attend que vous lui fournissiez des données, l’information frappée au clavier
est rangée temporairement dans l’emplacement mémoire nommé « tampon ». Ce dernier est
exploré, caractère par caractère par scanf, au fur et à mesure des besoins. Il existe un pointeur
qui précise quel est le prochain caractère à prendre en compte.
D’autre part, certains caractères dits « séparateurs » (ou « espaces blancs ») jouent un rôle particulier dans les données. Les deux principaux sont l’espace et la fin de ligne (\n). Il en existe
trois autres d’un usage beaucoup moins fréquent : la tabulation horizontale (\t), la tabulation
verticale (\v) et le changement de page (\f).
2.3 Les premières règles utilisées par scanf
Les codes de format correspondant à un nombre (c’est-à-dire tous ceux de la liste précédente,
excepté %c et %s) entraînent d’abord l’avancement éventuel du pointeur jusqu’au premier
caractère différent d’un séparateur. Puis scanf prend en compte tous les caractères suivants
jusqu’à la rencontre d’un séparateur (en y plaçant le pointeur), du moins lorsque aucun gabarit
Delannoy Livre.book Page 57 Mercredi, 6. mai 2009 4:26 16
Précédent

- 70/281

Suivant