我是一個業餘的C++代碼練習,我無法讓我的代碼正常工作。我希望有人能夠找到我的問題或指出我的方向。無法正確驗證無效輸入並接受正確的範圍值與C++
我只是試圖創建一個開關/案例菜單供用戶選擇。我希望他們不能輸入任何不正確的值作爲輸入。唯一正確的值是1,2,3或4.如果輸入了更低,更大或非數字值,我希望它們在循環中停留,直到它們輸入正確的值。
我的工作錯誤檢查問題是,當他們實際上輸入正確的值,他們仍然卡在循環?!我嘗試重新安排我的代碼,但是這個錯誤再次炸燬了我的程序。
謝謝你的任何建議,代碼輸入等我不知道爲什麼它不工作!
並在相關說明。我有問題讓我的jgrasp下載正常工作的C++,所以我下載了一個名爲code :: block的編譯器。由於某些原因,它無法註冊系統(「」)命令?!任何想法或更好的編譯器將不勝感激。謝謝。哦,這裏是我的第一個問題的代碼...在代碼後我的開關/案例菜單開始。感謝您的幫助
int main()
{
string name;
int ans2, ans3, count = 0, extra, select = 1, arraycount = 0, choice;
bool flag = true;
cout << "Hello World" << endl;
cout << "Enter your name: ";
cin >> name;
cout << "Thank you for using this program " + name << endl;
while (select != 4)
{
cout << "MAIN MENU\n";
cout << "Please enter a corrisponding numeric for your selection.\n";
cout << "1. You are Michael...\n";
cout << "2. You are Tim\n";
cout << "3. You are someone else\n";
cout << "4. Program exit\n";
cout << "Enter your selection: ";
cin >> select;
do
{
while(!(cin >> select))
{
cin.clear();
cin.ignore(numeric_limits<streamsize>::max(), '\n');
cout << "Invalid input. Try again: ";
}
cout << "You entered: " << select << endl;
if (select != 1 && select != 2 && select != 3 && select != 4)
{
flag = false;
cout << "Error. Please enter a valid selection.";
cout << "Enter your selection";
cin >> select;
}
else
flag = true;
}while(flag == false);
cout << "\n\nThank you for your choice\n";
//system("pause");
//system("cls");
http://www.parashift.com/c++-faq/istream-and-ignore.html – chris
這個問題似乎是題外話,因爲它不是一個衆包調試論壇。這個問題及其答案不會對其他人有用。 –