Aller au contenu

[C++] Menu qui entre dans une boucle infinie.


Vrap

Messages recommandés

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

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

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...