gpt4 book ai didi

c++ - 如何从文本文件中读取值并将该值存储到临时变量中?

转载 作者:太空宇宙 更新时间:2023-11-04 15:34:04 41 4
gpt4 key购买 nike

istringstream in("4.2 + 3.4 - 4.1");
ostringstream out;

string sign;
double num;
double tempNum = 0;
double sum = 0;

while (in >> num >> sign) {
tempNum = num;

if (sign == "+") {
sum = (num + tempNum);
}
}
cout << sum << endl;

My Output: 8.4

Correct output: 3.5

我想将 4.2 存储到 tempNum 并将 3.4 读入 num,这样我就可以将 8.4 和 3.4 添加到总和中。但是,我遇到的问题是每当它读取 4.2 时,它会将 4.2 分配给 num,然后读取 3.4 并将 3.4 分配给 tempNum。如何将 4.2 分配给 tempNum 并将 3.4 保留在 num 变量中。这样我就可以得到总和为 4.2 + 3.4,而不是 4.2 + 4.2。如果问题不清楚,我很乐意更详细地解释。

最佳答案

您的代码存在多个问题。如何解决最初陈述的问题已经得到解答。我在评论中提到的另一个问题。但到目前为止,还没有解决连续读取数字和“符号”的问题,我将尝试在此处展示。

首先您需要考虑的是,输入是一系列数字和“符号”,它们彼此相连。虽然您认为需要循环是正确的,但您还需要考虑实际的顺序......您有一个数字,后跟一个符号,然后是另一个数字等。

解决这个问题的简单方法是换个思路。它不是以数字开头的序列。而是将其视为一个单独的数字,后跟可选的“符号”和数字序列。

然后你可以做类似的事情

in >> sum;
while (in >> sign >> num)
{
if (sign == "+")
{
sum += num;
}
else if (sign == "-")
{
sum -= num;
}
}

上面的循环将处理输入只有一个数字的情况。或者任意数量的数字,中间有 +-

不过,这仍然无法正确处理诸如乘法和除法之类的事情。为此,您需要另一种更复杂的方法。

关于c++ - 如何从文本文件中读取值并将该值存储到临时变量中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39890881/

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