我正在努力爭取爲我的遊戲工作的輸入驗證。遊戲的C++輸入驗證
#include <iostream>
#include <ctime>
using namespace std;
int main()
{
int iGumballs;
int iUserguess;
int iGuesses = 0;
while (true)
{
system("CLS");
cin.clear();
iGuesses = 0;
srand(static_cast<unsigned int>(time(0)));
iGumballs = rand()%1000+1;
cout << "How many gumballs are in the bumball jar? You guess! 1-1000" << endl;
do
{
cout << "Enter your guess: ";
cin >> iUserguess;
if(iUserguess > iGumballs)
{
cout << "Too high!" << endl << endl;
}
if(iUserguess < iGumballs)
{
cout << "Too low!" << endl << endl;
}
iGuesses ++;
}
while(iUserguess > iGumballs || iUserguess < iGumballs);
cout << "You guessed the right amout of gumballs" << endl << endl;
cout << "You took " << iGuesses << " guesses" << endl << endl;
system ("pause");
}
return 0;
}
我基本上希望程序當用戶輸入小於1的數,和高於1000顯示
Your Guess: Sorry, incorrect input - try again
,以及某種驗證這確保輸入一個數而不是一個字母或符號。我嘗試過cin.fail(),但我無法完成它的工作。
感謝, 約翰
它接受以數字開頭的值(例如0xxx,「Too low!」輸出)。 – coelhudo
然後使用字符串解決方案會更好。閱讀你的輸入作爲字符串,並做你需要的任何檢查,在@ coelhudo的例子 –
嗯好,謝謝所有的幫助人。 –