Posté(e) le 17 mars 201114 a 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 :)
Posté(e) le 19 mars 201114 a 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 ;-)
Posté(e) le 22 mars 201114 a Auteur Merci bien, je vais aller regarder si je trouve quelque chose à ce niveau là :) .
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.