我希望程序循環,直到輸入有效(x是一個int,x> 0),但我的程序接受輸入,當我給它1,1無限循環,當我給它一個字符串,重複「錯誤的輸入!」。輸入檢查在c + +中的問題
#include <iostream>
using namespace std;
int main()
{
bool fail;
int x;
do{
cin >> x;
fail=(cin.fail() || x<=0);
if (fail){
cout << "Wrong input!" <<endl;
cin.clear();
};
}while(fail);
return 0;
}
我應該用它代替cin.clear()? – R2DToo
@ R2DToo在cin.clear()之前插入呼叫 –
對輸入「asd」仍然保持循環。 對於「1.1」,它給出1 – R2DToo