gpt4 book ai didi

C++ 条件语句未被检查

转载 作者:行者123 更新时间:2023-11-30 03:14:17 24 4
gpt4 key购买 nike

我一直在为这个问题摸不着头脑,但我似乎无法弄明白。

用户将输入 1 到 6 之间的数字。我正在执行检查以确保他们输入的值是有效输入。如果不是,它将一直提示他们,直到他们输入有效的输入。

我遇到的问题是,如果我输入任何整数值,while 循环将终止(这不是我想要的。用户输入的整数必须在 1 到 6 之间,然后它应该退出 while 循环) .

我希望有人能看到我看不到的东西。谢谢

#include <iostream>
#include <cmath>

using namespace std;

int ReadDouble(int option) {
while (cin.fail() != 0 && !(option > 0) && !(option <=6)) {
cin.clear();
cin.ignore(255, '\n');
cerr << "Cannot read input \n";
cout << "Choose an option between 1 and 6: " << endl;
cin >> option;
}
cout << "This worked: " << endl;
return 0;
}


int main()
{
int prompt = NULL;
cout << "1. Cube" << endl;
cout << "2. Sphere" << endl;
cout << "3. Prism" << endl;
cout << "4. Cylinder" << endl;
cout << "5. Cone" << endl;
cout << "6. Quit" << endl;
cout << "Choose an option by typing in the corresponding number: ";
cin >> prompt;

ReadDouble(prompt);
}

最佳答案

此处提到的问题:C++ conditional statement not being checked是你需要:!(option > 0) && !(option <=6)一个更好的方法是:

while(!(cin >> prompt) || prompt < 0 || prompt > 6) cout << "Cannot read input.\nChoose an option between 1 and 6: ";

Live Example

关于C++ 条件语句未被检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57947451/

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