Structure while en C

icode15 Messages postés 60 Statut Membre -  
fiddy Messages postés 11653 Statut Contributeur -
Bonjour,

je voudrais creer une boucle qui est
tant que l'utilisateur entre une lettre differente de 'n 'on reste dans la boucle en lui posant tjrs la meme question
voici ce que j'ai fait

char rep;
main(void){

do{
    printf("Entrer la lettre n \n");
    scanf("%c",&rep);

 }
while (rep!='n');

mais ne marche pas
une solution?

2 réponses

Arya Dröttningu Messages postés 650 Statut Membre 157
 
Bonjour,
ça te met quoi exactement ? Là pour le moment je peux pas tester mais essaye peut-être avec la fonction strcmp pour comparer les 2 chaines.
0
icode15 Messages postés 60 Statut Membre
 
quelque soit la lettre entrée
ça m'affiche
Entrer la lettre n
0
fiddy Messages postés 11653 Statut Contributeur 1 847
 
strcmp c'est pour deux chaînes de caractères, pas pour comparer des char.
0
Arya Dröttningu Messages postés 650 Statut Membre 157
 
ah ok j'étais pas sûr.
0
fiddy Messages postés 11653 Statut Contributeur 1 847
 
Bonjour,
Ceci est normal, car il faut faire un flush du buffer clavier. Sinon le '\n' sera considéré comme un caractère.
Cdlt,
0
icode15 Messages postés 60 Statut Membre
 
tu peux m'en dire plus sur le code a ecrire dans ce cas
suis encore debutant
0
fiddy Messages postés 11653 Statut Contributeur 1 847
 
Cela donnerait :
int main(void) {
  do {
    int rep,c;

    printf ("....");
    fflush(stdout);

    rep=getchar();
    while( (c=getchar()) != '\n' && c != EOF);
   } while(rep!='n');
  
return 0;
}

Cela doit pouvoir s'écrire de manière plus concis, mais le squelette doit fonctionner. A toi de t'en inspirer.
Cdlt,
0