Programmer en langage C
152
© Éditions Eyrolles
Voici un exemple d’instructions permettant de questionner l’utilisateur jusqu’à ce qu’il ait
fourni une réponse satisfaisante
Nous avons prévu ici des lignes de 80 caractères au maximum. Nous risquons donc de voir le
tableau ligne « déborder » si l’utilisateur fournit une réponse plus longue. Dans la pratique, on
peut augmenter la valeur de LG, notamment lorsque, comme c’est souvent le cas, on a affaire
à une implémentation où les lignes frappées au clavier ont une taille maximale. Si l’on cherche
à réaliser un programme« portable », on préférera une solution qui consiste à remplacer gets
par fgets (stdin,...) dont nous parlerons dans le chapitre consacré aux fichiers. La démarche
restera identique à celle présentée ici.
Contrôle des entrées avec gets et sscanf
#include
#define LG 80
main()
{
int n, compte ;
char c ;
char ligne [LG+1] ;
do
{ printf ("donnez un entier et un caractère : ") ;
gets (ligne) ;
compte = sscanf (ligne, "%d %c", &n, &c) ;
}
while (compte < 2 ) ;
printf ("merci pour %d %c\n", n, c) ;
}
donnez un entier et un caractère : bof
donnez un entier et un caractère : a 125
donnez un entier et un caractère : 12 bonjour
merci pour 12 b
Delannoy Livre.book Page 152 Mercredi, 6. mai 2009 4:26 16
Précédent

- 165/281

Suivant