gpt4 book ai didi

c++ - cin.fail while循环输入再入

转载 作者:行者123 更新时间:2023-11-28 06:05:05 29 4
gpt4 key购买 nike

只是尝试检查此问题的输入是否为 bool 变量(1 或 0)。

但是,无论何时触发 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;
}

最佳答案

您需要将 cin >> a; 放在 while 循环的末尾。

cin.clear() 将消除错误,然后 while 循环将停止。

像这样:

cin >> a;
while (cin.fail())
{
cin.clear();
cin.ignore(1000,'\n');
cout << "Error: Enter only 0 or 1" << endl;
cout << "Enter in a new value for a" << endl;
cin >> a;
}

关于c++ - cin.fail while循环输入再入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32556114/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com