Programmer en langage C
56
© Éditions Eyrolles
1.6 La macro putchar
L’expression :
putchar (c)
joue le même rôle que :
printf ("%c", c)
Son exécution est toutefois plus rapide, dans la mesure où elle ne fait pas appel au mécanisme
d’analyse de format. Notez qu’en toute rigueur putchar n’est pas une vraie fonction mais une
macro. Ses instructions (écrites en C) seront incorporées à votre programme par la directive :
#include
Alors que cette directive était facultative pour printf (qui est une fonction), elle devient
absolument nécessaire pour putchar. En son absence, l’éditeur de liens serait amené à
rechercher une fonction putchar en bibliothèque et, ne la trouvant pas, il vous gratifierait
d’un message d’erreur En toute rigueur, la fonction recherchée pourra porter un nom légèrement
différent, par exemple _putchar ; c’est ce nom qui figurera dans le message d’erreur fourni
par l’éditeur de liens.
2 Les possibilités de la fonction scanf
Nous avons déjà rencontré quelques exemples d’appels de scanf. Nous y avons notamment
vu la nécessité de recourir à l’opérateur & pour désigner l’adresse de la variable (plus généralement de la lvalue) pour laquelle on souhaite lire une valeur. Vous avez pu remarquer que
cette fonction possédait une certaine ressemblance avec printf et qu’en particulier elle faisait,
elle aussi, appel à des « codes de format ».
Cependant, ces ressemblances masquent également des différences assez importantes au niveau :
●
de la signification des codes de format. Certains codes correspondront à des types différents, suivant qu’ils sont employés avec printf ou avec scanf ;
●
de l’interprétation des caractères du format qui ne font pas partie d’un code de format.
Ici, nous allons vous montrer le fonctionnement de scanf. Comme nous l’avons fait pour
printf, nous vous présenterons d’abord les principaux codes de conversion. (Le paragraphe 1.2
de l’annexe vous en fournira un panorama complet). Là encore, nous avons également mentionné
les codes de conversion relatifs aux chaînes et aux entiers non signés.
En revanche, compte tenu de la complexité de scanf, nous vous en exposerons les différentes
possibilités de façon progressive, à l’aide d’exemples. Notamment, ce n’est qu’à la fin de ce
chapitre que vous serez en mesure de connaître toutes les conséquences de données incorrectes.
Delannoy Livre.book Page 56 Mercredi, 6. mai 2009 4:26 16
56
© Éditions Eyrolles
1.6 La macro putchar
L’expression :
putchar (c)
joue le même rôle que :
printf ("%c", c)
Son exécution est toutefois plus rapide, dans la mesure où elle ne fait pas appel au mécanisme
d’analyse de format. Notez qu’en toute rigueur putchar n’est pas une vraie fonction mais une
macro. Ses instructions (écrites en C) seront incorporées à votre programme par la directive :
#include
Alors que cette directive était facultative pour printf (qui est une fonction), elle devient
absolument nécessaire pour putchar. En son absence, l’éditeur de liens serait amené à
rechercher une fonction putchar en bibliothèque et, ne la trouvant pas, il vous gratifierait
d’un message d’erreur En toute rigueur, la fonction recherchée pourra porter un nom légèrement
différent, par exemple _putchar ; c’est ce nom qui figurera dans le message d’erreur fourni
par l’éditeur de liens.
2 Les possibilités de la fonction scanf
Nous avons déjà rencontré quelques exemples d’appels de scanf. Nous y avons notamment
vu la nécessité de recourir à l’opérateur & pour désigner l’adresse de la variable (plus généralement de la lvalue) pour laquelle on souhaite lire une valeur. Vous avez pu remarquer que
cette fonction possédait une certaine ressemblance avec printf et qu’en particulier elle faisait,
elle aussi, appel à des « codes de format ».
Cependant, ces ressemblances masquent également des différences assez importantes au niveau :
●
de la signification des codes de format. Certains codes correspondront à des types différents, suivant qu’ils sont employés avec printf ou avec scanf ;
●
de l’interprétation des caractères du format qui ne font pas partie d’un code de format.
Ici, nous allons vous montrer le fonctionnement de scanf. Comme nous l’avons fait pour
printf, nous vous présenterons d’abord les principaux codes de conversion. (Le paragraphe 1.2
de l’annexe vous en fournira un panorama complet). Là encore, nous avons également mentionné
les codes de conversion relatifs aux chaînes et aux entiers non signés.
En revanche, compte tenu de la complexité de scanf, nous vous en exposerons les différentes
possibilités de façon progressive, à l’aide d’exemples. Notamment, ce n’est qu’à la fin de ce
chapitre que vous serez en mesure de connaître toutes les conséquences de données incorrectes.
Delannoy Livre.book Page 56 Mercredi, 6. mai 2009 4:26 16
