cin >> menuChoice;
while (!(cin >> menuChoice))
{
cout << "invalid selection, please enter a number from the menu 1" << endl;
cin.clear();
cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
}
我想'捕捉'一個字符串,以便程序不會崩潰或進入連續循環,因此我輸入了上面的while循環。看起來不錯。直到我輸入0進入菜單選項 - !(cin >> menuChoice)被調用,即使它是有效的輸入(我將使用另一個循環來確保它在範圍內,但只要它是一個int,它應該沒問題,這就是我的想法。驗證輸入
我甚至只是while循環之前,但無濟於事嘗試了
if (menuChoice == 0)
menuchoice = 6;
。
任何援助?