在這個循環中,用戶應該輸入一個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