Vrap Posté(e) le 17 mars 2011 Partager Posté(e) le 17 mars 2011 Bonjour! Je tente de réaliser un programme pour mon cours d'info et j'ai un petit soucis. J'aimerais faire un menu tout ce qu'il y a de plus simple. Au départ, j'avais ceci: Le problème : ça cycle si on rentre un char (ex : a) double test; do { cout << "Voulez-vous commencer?" << endl << "1- Oui." << endl << "2- Non." << endl; cin >> test; } while (commencer != 1 && commencer != 2); J'ai tenté de modifier, maintenant j'ai ça: int commencer; char menu; do { cout << "Voulez-vous commencer?" << endl << "1- Oui." << endl << "2- Non." << endl; cin >> menu; commencer=(menu-'0'); } while (commencer != 1 && commencer != 2); On peut rentrer ce qu'on veut, mais un seul caractère! Est-ce qu'il serait possible que lorsque je tape : aa, le programme considère qu'il s'agit d'un seul caractère et pas de deux. En fait il garde le deuxième pour le prochain cin j'ai l'impression. Merci de votre aide :) Lien vers le commentaire Partager sur d’autres sites More sharing options...
BarthVonRies Posté(e) le 19 mars 2011 Partager Posté(e) le 19 mars 2011 En c, le système garde un buffer d'entrée (stdin). Si tu ne lis que le premier caractère, le reste de la saisie y est stocké. Pour éviter ce problème, il faut réaliser un fflush( stdin) afin de vider le buffer d'entrée. Après, je te laisse chercher comment ça se fait en C++, sinon tu vas oublier pour ton prochain partiel ;-) Lien vers le commentaire Partager sur d’autres sites More sharing options...
Vrap Posté(e) le 22 mars 2011 Auteur Partager Posté(e) le 22 mars 2011 Merci bien, je vais aller regarder si je trouve quelque chose à ce niveau là :) . Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.