Structure while en C

icode15 Messages postés 60 Statut Membre -  
fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   -
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. 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
    1. icode15 Messages postés 60 Statut Membre
       
      quelque soit la lettre entrée
      ça m'affiche
      Entrer la lettre n
      0
    2. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
       
      strcmp c'est pour deux chaînes de caractères, pas pour comparer des char.
      0
    3. Arya Dröttningu Messages postés 650 Statut Membre 157
       
      ah ok j'étais pas sûr.
      0
  2. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   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
    1. 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
    2. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   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