重複の可能性:
数値入力 C++ を検証する方法
次のことをどのように行いますか。
while (iNumberOfPlayers <2 || iNumberOfPlayers >5)
{
cout << "Enter number of players (1-4): ";
cin >> iNumberOfPlayers;
cin.clear();
std::string s;
cin >> s;
}
私がスローされたループを見た後、cin
リセットされていないように見えます (x を入れた場合)ループ内cin
にいる限り、X を再度読み取りwhile
ます。これはバッファの問題だと思いますが、クリアする方法はありますか?
次に試しました:
while (iNumberOfPlayers <2 || iNumberOfPlayers >5)
{
cout << "Enter number of players (1-4): ";
cin >> iNumberOfPlayers;
cin.clear();
cin.ignore();
}
一度にすべてを1つずつ読み取ることを除いて、これは機能します。「xyz」を入力すると、ループが 3 回実行されてから、再度質問するために停止します。