gpt4 book ai didi

c++ - 试图打破 while 循环时陷入无限循环

转载 作者:行者123 更新时间:2023-11-30 01:09:10 25 4
gpt4 key购买 nike

所以我正在制作一个带有主菜单的计算器,我希望操作继续进行,直到用户按下 $ 然后返回主菜单。当我测试它时,它使我的代码陷入无限循环。我做错了什么?下面是一个函数的片段。 (菜单被声明为无效)

float makeSum(float num1, float num2) {

float r = 0;
bool ended = false;
do {
cout << "Please provide the first number: " << endl;
cin >> num1;

if (num1 == '$') {
ended = true;
}

cout << "Please provide the second number: " << endl;
cin >> num2;

if (num2 == '$') {
ended = true;

r = num1 + num2;
cout << "Result: " << r << endl;
} while (!ended);

menu();
return r;

}

最佳答案

这肯定行不通。当你说:

float num2;

然后是:

cin >> num2;

然后只会从输入流中读取 float 。解决这个问题的一种方法是在你的循环中:

string input;
...
cin >> input;
if (input == "$") break;
istringstream s(input);
float num;
s >> num; // now you read a float from the string

另一件事是,如我在上面的代码片段中所示,使用 break 更容易跳出循环,而不是使用 bool 标志并检查它。

关于c++ - 试图打破 while 循环时陷入无限循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40800368/

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