2017-06-14 1 views
-4

Y at-il un moyen d'utiliser la boucle lorsque l'utilisateur saisit un mauvais numéro? c'est-à-dire (par défaut) ou quelque chose. J'ai créé goto et ça marche mais c'est boiteux.Commutateur C++ exécuté pendant la boucle par défaut

default: 
      { 
       cin.clear(); 
       cin.sync(); 
       cout << "ERROR! Choose other number: "; 
       cin >> choose; 
       goto again; 
      } 
+1

Afficher le code réel! – tilz0R

+0

Je pense que vous cherchez ceci: https://stackoverflow.com/questions/10828937/how-to-make-cin-take-only-numbers – NathanOliver

+1

Pas besoin de goto. Une boucle autour du switch et un continue suffiront. – StoryTeller

Répondre

-1

Je suggère:

bool OK; 
do 
{ 
    cin >> choose; 
    if(OK = !cin.fail()) //if the input is OK 
    { 
     switch(choose) 
     { 
     case 1: //do something 
      break; 
     //case 2: //do something else 
     //etc. 
     default: 
      cin.clear(); 
      cin.sync(); 
      cout << "ERROR! Choose other number: "; 
      OK = false; 
      break; 
     } 
    } 
} 
while(!OK); 
+0

GRAND! Ça marche. Merci à tous pour votre aide –