Vrap Posted March 17, 2011 Share Posted March 17, 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 :) Link to comment Share on other sites More sharing options...
BarthVonRies Posted March 19, 2011 Share Posted March 19, 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 ;-) Link to comment Share on other sites More sharing options...
Vrap Posted March 22, 2011 Author Share Posted March 22, 2011 Merci bien, je vais aller regarder si je trouve quelque chose à ce niveau là :) . Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.