Structure while en C

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

  1. 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
    1. quelque soit la lettre entrée
      ça m'affiche
      Entrer la lettre n
      0
    2. Contributeur
      strcmp c'est pour deux chaînes de caractères, pas pour comparer des char.
      0
    3. ah ok j'étais pas sûr.
      0
  2. Contributeur
    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
    1. tu peux m'en dire plus sur le code a ecrire dans ce cas
      suis encore debutant
      0
    2. Contributeur
      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