© Éditions Eyrolles
11
chapitre n° 1
Généralités sur le langage C
Ici, nous déclarons que la variable op est de type caractère (char). Une telle variable est
destinée à contenir un caractère quelconque (codé, bien sûr, sous forme binaire !).
L’instruction scanf ("%c", &op) permet de lire un caractère au clavier et de le ranger dans
op. Notez le code %c correspondant au type char (n’oubliez pas le & devant op). L’instruction
if permet d’afficher la somme ou le produit de deux nombres, suivant le caractère contenu
dans op. Notez que :
●
la relation d’égalité se traduit par le signe == (et non = qui représente l’affectation et qui,
ici, comme nous le verrons plus tard, serait admis mais avec une autre signification !).
●
la notation ’+’ représente une constante caractère. Notez bien que C n’utilise pas les
mêmes délimiteurs pour les chaînes (il s’agit de ") et pour les caractères.
Remarquez que, tel qu’il a été écrit, notre programme calcule le produit, dès lors que le caractère
fourni par l’utilisateur n’est pas +.
On pourrait penser à inverser l’ordre des deux instructions de lecture en écrivant :
scanf ("%d %d", &n1, &n2) ;
...
scanf ("%c", &op) ;
Toutefois, dans ce cas, une petite difficulté apparaîtrait : le caractère lu par le second appel de
scanf serait toujours différent de + (ou de *). Il s’agirait en fait du caractère de fin de ligne \n
(fourni par la validation de la réponse précédente). Le mécanisme exact vous sera expliqué
dans le chapitre relatif aux « entrées-sorties conversationnelles » ; pour l’instant, sachez que
vous pouvez régler le problème en effectuant une lecture d’un caractère supplémentaire.
Au lieu de :
scanf ("%d", &op) ;
on pourrait écrire :
op = getchar () ;
Cette instruction affecterait à la variable op le résultat fourni par la fonction getchar (qui ne
reçoit aucun argument - n’omettez toutefois pas les parenthèses !).
D’une manière générale, il existe une fonction symétrique putchar ; ainsi :
putchar (op) ;
affiche le caractère contenu dans op.
Notez que généralement getchar et putchar sont, non pas des vraies fonctions, mais des
macros dont la définition figure dans stdio.h.
Delannoy Livre.book Page 11 Mercredi, 6. mai 2009 4:26 16
Précédent

- 24/281

Suivant