Boucle do/while probleme
Résolu
CherryBlondy
Messages postés
7
Date d'inscription
Statut
Membre
-
CherryBlondy Messages postés 7 Date d'inscription Statut Membre -
CherryBlondy Messages postés 7 Date d'inscription Statut Membre -
Bonjour,
Je suis débutante en C. J'ai tenter de faire un p'tit code. A l'interieur de ce dernier j'ai un p'tit problème :
Je vous copie la partie concernée :
do
{
printf("Etes vous d'accord ? y/n");
scanf("%c", &playagain);
} while (playagain=='y');
Mais voilà à l'écran quand je l'execute il m'affiche une fois "Etes vous d'accord ? y/n" puis la boucle est finit. Mon programme est finit tout court. L'utilisateur (ici moi) n'a pas le temps de taper quoi que se soit.
Je comprends pas trop pourquoi il me fait ça. Si quelqu'un pouvait m'indiquer comment recuperer ce que l'utilisateur à écrit avant que la boucle se finise (pourtant il devrait executer ce qu'il y a à l'interieur de la boucle avant le test non?)
Amicalement =)
Dans l'attente de votre aide
Je suis débutante en C. J'ai tenter de faire un p'tit code. A l'interieur de ce dernier j'ai un p'tit problème :
Je vous copie la partie concernée :
do
{
printf("Etes vous d'accord ? y/n");
scanf("%c", &playagain);
} while (playagain=='y');
Mais voilà à l'écran quand je l'execute il m'affiche une fois "Etes vous d'accord ? y/n" puis la boucle est finit. Mon programme est finit tout court. L'utilisateur (ici moi) n'a pas le temps de taper quoi que se soit.
Je comprends pas trop pourquoi il me fait ça. Si quelqu'un pouvait m'indiquer comment recuperer ce que l'utilisateur à écrit avant que la boucle se finise (pourtant il devrait executer ce qu'il y a à l'interieur de la boucle avant le test non?)
Amicalement =)
Dans l'attente de votre aide
A voir également:
- Boucle do/while probleme
- Mon pc s'allume et s'éteint en boucle ✓ - Forum Matériel & Système
- Do not turn off target traduction - Forum Samsung
- Mon PC s'allume puis s'éteint tout seul. Que faire ? ✓ - Forum Matériel & Système
- Tv orange chargement en boucle ✓ - Forum TV & Vidéo
- My people do - Télécharger - Organisation
1 réponse
Salut,
C'est l'effet kiss cool ^^. En fait lorsque tu récupères le caractère, il y a le retour chariot qui va être stocker dans le buffer clavier. Et il sera utilisé lors du deuxième passage de la boucle. Et comme '\n' est différent de 'y'. Tu sors de la boucle.
L'astuce consiste à faire après le scanf("%c") de mettre : while(getchar()!='\n');
Cdlt
C'est l'effet kiss cool ^^. En fait lorsque tu récupères le caractère, il y a le retour chariot qui va être stocker dans le buffer clavier. Et il sera utilisé lors du deuxième passage de la boucle. Et comme '\n' est différent de 'y'. Tu sors de la boucle.
L'astuce consiste à faire après le scanf("%c") de mettre : while(getchar()!='\n');
Cdlt
super rapide en plus mici encore =)