J'ai des problèmes avec certaines zones d'entrée de mon programme. Il y a quelques parties où l'utilisateur entre un entier spécifique. Même s'ils entrent dans le mauvais qui est tout bon et dandy, mais j'ai remarqué que s'ils entraient n'importe quoi pas de type entier comme 'm' alors il bouclera le message d'erreur à plusieurs reprises.Entrée utilisateur des entiers - Traitement des erreurs
J'ai quelques fonctions qui ont une entrée entière. En voici un pour un exemple.
void Room::move(vector<Room>& v, int exone, int extwo, int exthree, int current)
{
v[current].is_occupied = false;
int room_choice;
cout << "\nEnter room to move to: ";
while(true)
{
cin >> room_choice;
if(room_choice == exone || room_choice == extwo || room_choice == exthree)
{
v[room_choice].is_occupied = true;
break;
}
else cout << "Incorrect entry. Try again: ";
}
}
[RESOLU]
void Room::move(vector<Room>& v, int exone, int extwo, int exthree, int current)
{
v[current].is_occupied = false;
int room_choice;
cout << "\nEnter room to move to: ";
while(true)
{
cin >> room_choice;
if(room_choice == exone || room_choice == extwo || room_choice == exthree)
{
v[room_choice].is_occupied = true;
break;
}
else if(cin.fail())
{
cin.clear()
cin.ignore()
cout << "Incorrect entry. Try again: ";
}
}
}
Aaarrgh !!! Pourquoi les professeurs continuent-ils à assigner ces stupides exercices d'E/S sur console? –