我剛學C++(1周的經驗),並嘗試寫一個輸入驗證循環,要求用戶輸入「是」或「否」。我想通了,但有一種感覺,有一個更好的方法來解決這個問題。這是我想出了:輸入驗證迴路用繩子
{
char temp[5]; // to store the input in a string
int test; // to be tested in the while loop
cout << "Yes or No\n";
cin.getline(temp, 5);
if (!(strcmp(temp, "Yes")) || !(strcmp(temp, "No"))) // checks the string if says Yes or No
cout << "Acceptable input"; // displays if string is indeed Yes or No
else //if not, intiate input validation loop
{
test = 0;
while (test == 0) // loop
{
cout << "Invalid, try again.\n";
cin.getline(temp, 5); // attempts to get Yes or No again
if (!(strcmp(temp, "Yes")) || !(strcmp(temp, "No"))) // checks the string if says Yes or No
test = 1; // changes test to 1 so that the loop is canceled
else test = 0; // keeps test at 0 so that the loop iterates and ask for a valid input again
}
cout << "Acceptable input";
}
cin.ignore();
cin.get();
return 0;
}
我爲我的可憐的筆記道歉,不知道什麼是相關的。我也使用cstring頭。
請格式化你的代碼 – Heisenbug 2011-03-28 08:03:28
不要使用'cstring'頭,除非你必須這樣做。 '#include'是一個更好的解決方案。 –
hrnt
2011-03-28 08:08:07
既然你在C++中工作,考慮使用'的std :: string'類。 – 2011-03-28 08:08:17