gpt4 book ai didi

c++ - c++中输入验证的逻辑错误

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:53:42 25 4
gpt4 key购买 nike

以下代码存在逻辑错误每次我运行它并输入 1 或 0 代码在 while 循环中仍然执行。谁能告诉我为什么?

bool getmove()
{
bool move;
cout << "Would you like to make the first move?(1 for yes 0 for no)\n";
cin >> move;
while(move != 1 || move != 0 || !cin.good())
{
if(!cin.good())
{
cout << "ERROR please try again\n";
cin.clear();
cin.ignore(80,'\n');
cin >> move;
}
else
{
cout << "Invalid input please try again\n";
cin >> move;
}
}
return move;
}

最佳答案

看这一行:

while(move != 1 || move != 0 || !cin.good())

总是 move != 1 || move != 0(因为不能两者都是)。

此外,您可以通过读取字符串之类的内容并对其进行测试来避免一些麻烦,而不是依赖于转换。

关于c++ - c++中输入验证的逻辑错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13022741/

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