ユーザーが整数を入力するかどうかをテストすることになっているこのコード スニペットがあります。これは、ユーザーが文字を入力した場合に機能しますが、小数を入力した場合は機能しません。ここに私のコードスニペットがあります:
Student student;
int id;
while(!(cin >> id))
{
cout << "\nERROR: Please enter a Positive Whole Number" << endl;
cin.clear();
cin.ignore ();
cout << "Enter Student ID: ";
}
入るA
と while ループを繰り返しますが、入る12.5
と while ループから外れて続行します。整数に解析されるかどうかをテストしていませんか?文字を受け入れているのに受け入れて12.5
いないのはなぜですか?