我正在验证用户输入。如果用户输入的不是整数,那么它应该留在While
循环中。但是,当我给程序一个"w"时,例如,程序只是无休止地打印"请输入整数",我不得不停止程序。
int MAns1 = 0
while (!(cin >> MAns1))
{
cout << "nPlease Enter An Integer: ";
cin.clear();
}
因为您应该测试(cin >> MAns1)
,而不是!(cin >> MAns1)
。我想这样做:
#include<iostream>
using std::cin;
using std::cout;
int main() {
int MAns1 = 0;
for (;;)
{
cout << "nPlease Enter An Integer: ";
cin >> MAnsi;
// did the last read succeed?
if(!cin) {
// it did *not* succeed.
break;
}
}
}