可能重複:
How to validate numeric input C++檢查C++字符串一個int:修改爲:結算CIN
你如何做到以下幾點:
while (iNumberOfPlayers <2 || iNumberOfPlayers >5)
{
cout << "Enter number of players (1-4): ";
cin >> iNumberOfPlayers;
cin.clear();
std::string s;
cin >> s;
}
看後循環我投入,它看起來像cin
沒有得到重置(如果我把x)只要我在while
循環中,3210就會再次讀取X.猜測這是一個緩衝區問題,有什麼方法可以清除它?
我然後設法:
while (iNumberOfPlayers <2 || iNumberOfPlayers >5)
{
cout << "Enter number of players (1-4): ";
cin >> iNumberOfPlayers;
cin.clear();
cin.ignore();
}
除了它其中工程一次讀取都1。如果我輸入「xyz」,那麼循環會經過3次,然後再停下來再次提問。
你需要聲明,比如'INT一= 0;' – ThomasMcLeod 2012-07-14 14:46:35
但是,如果你將'a'聲明爲int,那麼是不是很難成爲一個int? – 2012-07-14 14:47:11
@SimonAndréForsbergint a = 0; cin << a;如果有人放入一些不是int的東西(例如x),整個程序就會崩潰。 – 2012-07-14 14:49:07