在这个循环中,用户应该输入一个int
并且程序检查它是否是奇数它会转到下一个部分,但是我不明白为什么如果用户输入的字符不是int
,该程序正陷入无限循环!do-while循环与if C++
int num;
do {
cout << "PLEASE enter the num: ";
cin >> num;
if (num % 2 == 0)
cout << "Number should be odd!" << endl;
else
break;
} while (true);
//...
原因反正char/int != 0
,如果它是==0
也应该在明年cin
停止,但它不会停止! 我也试过ws(cin)
,但它没有帮助我。 请告诉我如何解决这个问题,以及为什么会发生这种情况。
见[此](http://stackoverflow.com/questions/13378989/why-does-stringstream-change-value-of-target-on-failure)。 – LogicStuff