私のプログラムの特定の入力領域に問題があります。ユーザーが特定の整数を入力する部分がいくつかあります。たとえそれが間違っていて間違っていても、「m」のような整数型ではないものを入力すると、エラーメッセージが繰り返しループします。ユーザー入力の整数 - エラー処理
私は整数入力を持つ2つの関数を持っています。ここに例を挙げます。 [SOLVED]
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: ";
}
}
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を!なぜ教授はこれらの愚かなコンソールI/O演習を割り当て続けますか? –