我目前正在研究C++程序,我想檢查用戶輸入是否有效。目前我的代碼工作,如果用戶輸入正確的輸入,或者如果用戶輸入一個不正確的小號碼,我的程序會告訴用戶輸入無效。現在我的問題是,當用戶輸入多個字符/字母或一個有9個或更多數字的大數字時,我的程序進入一個無限循環,給它們提供錯誤信息。下面是我的代碼:檢查有效輸入
//for (;;)
while (flag== false)
{
cin >> Input;
if (Input <= choice.size()-1)
{
flag = true;
// break;
}
else
{
cerr << "Input <" << Input << "> is Invalid, Please Choose a Valid Option\n";
userInput = 0;
}
}
正如你看到的,我也試圖做的for循環的infinate,但它給了我同樣的結果。 在我的代碼中,我正在將一個矢量打印到屏幕上。基本上,用戶選擇矢量值來使用它。
我願意接受任何建議。謝謝
可能重複http://stackoverflow.com/questions/3273993/how-do-i-validate-user -in-a-double-in-c) – casablanca 2010-11-14 18:28:40