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

cva*_*dal 1 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;
Run Code Online (Sandbox Code Playgroud)

我的文本文件格式如下:

1 | Person One | $123
2 | Person Two | $456
3 | Person Three | $789
Run Code Online (Sandbox Code Playgroud)

chr*_*ris 5

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

你需要保持连续的总和:

totalPayroll = totalPayroll + stoi(line);
Run Code Online (Sandbox Code Playgroud)

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

totalPayroll += stoi(line);
Run Code Online (Sandbox Code Playgroud)