我有这个代码片段应该测试用户是否输入整数。如果用户输入字母而不是小数,这将起作用,我想知道为什么会这样。这是我的代码片段:
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
但不接受字符?