C ++在while()循环中做简单添加麻烦

时间:2013-05-06 03:31:11

标签: c++

希望有人可以告诉我我做错了什么。我正在读取文本文件中每一行的特定点,然后尝试将该值添加到下一行的值,并继续这样做,直到文件/循环结束。但目前,它只会添加前两行的值,而不是......

123 + 456 + 789 = totalPayroll。

我的代码如下:

inStream.open("staffMembers.txt");

while(getline(inStream.ignore(256, '$'), line))
{
    totalPayroll = stoi(line) + stoi(line);
}

inStream.close();

cout << "$" << totalPayroll << endl;

我的文本文件格式如下:

1 | Person One | $123
2 | Person Two | $456
3 | Person Three | $789

2 个答案:

答案 0 :(得分:5)

在你的循环中,你为每一行重新分配totalPayroll stoi(line) + stoi(line)的值,所以它最终最终为2 * 789。

你需要保持连续的总和:

totalPayroll = totalPayroll + stoi(line);

这也有一个使用复合赋值运算符的简短形式,它执行相同的操作:

totalPayroll += stoi(line);

答案 1 :(得分:2)

正如克里斯在评论中提到的那样,totalPayroll += stoi(line);应该可以解决你的问题。

C ++运算符+=是编写totalPayroll = totalPayroll + stoi(line);的简写方式。它将操作符右侧给出的值添加到变量的当前值。