Boucle (Debutant) [c] - C - Programmation
Marsh Posté le 23-01-2005 à 02:11:00
Imaginons qu'on exécute ton programme, et qu'on tape : o<entrée>.
Le 'o' est lu par le getchar(), la condition du while est vrai, on boucle, tout va bien. Mais où passe le newline ? Et bien il ne passe nul part justement, il est lu par le getchar() suivant, le test du while est faux, et on quitte la boucle.
Le comportement de fflush n'est défini que pour les flux en écriture, donc pas pour stdin.
Marsh Posté le 23-01-2005 à 14:37:03
Ok merci !
c'est sympa, j'ai mis un getchar() en plus
et ça marche.
Marsh Posté le 23-01-2005 à 14:52:38
Diantre a écrit : Ok merci ! |
Ok, mais plutôt que de bidouiller, il faut apprendre à utiliser les bonnes procédures:
http://mapage.noos.fr/emdel/notes.htm#saisie
Marsh Posté le 24-01-2005 à 20:21:54
Diantre a écrit : Ok merci ! |
Tu peux également mettre un printf("\n" ); juste après et ca devrait passer sans un deuxieme getchar()
Marsh Posté le 24-01-2005 à 22:30:13
Slay a écrit : Tu peux également mettre un printf("\n" ); juste après et ca devrait passer sans un deuxieme getchar() |
Stop à la bidouille, merci. En plus, ça n'a rien à voir...
Marsh Posté le 23-01-2005 à 00:47:32
Bonjour
Pourquoi quand je fais une boucle du style :
do{
printf("continuer ? :" );
fflush(stdin);
rep=getchar();
}while(rep=='o');
hé bien ça quitte quand même si je réponds par "o"?
Voilà c'est bête je sais, mais là j'avoue avoir du mal !
merci !