Boucle do/while probleme
Résolu
CherryBlondy
Messages postés
16
Statut
Membre
-
CherryBlondy Messages postés 16 Statut Membre -
CherryBlondy Messages postés 16 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
- My people do - Télécharger - Organisation
- Do not turn off target traduction - Forum Samsung
- Samsung galaxy tab S Bloquer Downloading do not turn off target - Forum Téléphones & tablettes Android
- Mon pc s'allume et s'éteint en boucle ✓ - Forum Matériel & Système
- Fichier .do ✓ - Forum PDF
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 =)