Structure while en C

Fermé
icode15 Messages postés 57 Date d'inscription samedi 21 février 2009 Statut Membre Dernière intervention 26 juin 2011 - 26 juin 2011 à 14:33
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 26 juin 2011 à 17:26
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 581 Date d'inscription mardi 12 janvier 2010 Statut Membre Dernière intervention 3 janvier 2019 157
26 juin 2011 à 14:56
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 57 Date d'inscription samedi 21 février 2009 Statut Membre Dernière intervention 26 juin 2011
26 juin 2011 à 15:28
quelque soit la lettre entrée
ça m'affiche
Entrer la lettre n
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 843
26 juin 2011 à 15:50
strcmp c'est pour deux chaînes de caractères, pas pour comparer des char.
0
Arya Dröttningu Messages postés 581 Date d'inscription mardi 12 janvier 2010 Statut Membre Dernière intervention 3 janvier 2019 157
26 juin 2011 à 16:22
ah ok j'étais pas sûr.
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 843
26 juin 2011 à 15:49
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 57 Date d'inscription samedi 21 février 2009 Statut Membre Dernière intervention 26 juin 2011
26 juin 2011 à 15:55
tu peux m'en dire plus sur le code a ecrire dans ce cas
suis encore debutant
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 843
26 juin 2011 à 17:26
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