0
只是試圖檢查輸入是否爲此問題的布爾變量(1或0)。cin.fail while循環輸入重新輸入
但是,無論何時觸發while循環(即不通過輸入1或0),它都會通過並說條件爲真。
我希望用戶能夠在錯誤輸入後重新輸入他們的輸入。我會如何去做這件事?
我的代碼:
int main() {
bool a,b,c;
cout << "This program will determine the value of the condition !(a||b) && c " << endl;
cout << "Please enter boolean values for a, b, and c. (0=F, 1=T) ";
cin >> a;
while (cin.fail())
{
cin.ignore(1000,'|n');
cin.clear();
cout << "Error: Enter only 0 or 1" << endl;
cout << "Enter in a new value for a" << endl;
}
cin >> b;
cin >> c;
cout << "The condition !(xx||xx)&&xx ";
if(!(a||b) && c)
{
cout << "is true";
}
else
{
cout << "is false";
}
return 0;
}
謝謝。但是,如果我輸入一個字母,爲什麼它會在我的控制檯中無限重複兩個輸出?有沒有簡單的方法來解決這個問題? – kpnd
@kpnd:在你的問題中有錯字,這個答案的換行字符字面值 - 它應該是''\ n''不是''| n'' ......更好的修復並再試一次。 –
@TonyD感謝您的支票。但是,輸入非數字時無限循環的問題仍然存在。有任何想法嗎? – kpnd