Boucle do/while probleme
Résolu
CherryBlondy
Messages postés
16
Date d'inscription
Statut
Membre
Dernière intervention
-
CherryBlondy Messages postés 16 Date d'inscription Statut Membre Dernière intervention -
CherryBlondy Messages postés 16 Date d'inscription Statut Membre Dernière intervention -
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
- Mon pc s'allume et s'éteint en boucle ✓ - Forum Matériel & Système
- 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
- What you do what you say - Forum Audio
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 =)