希望有人可以告诉我我做错了什么.我正在读取文本文件中每一行的特定点,然后尝试将该值添加到下一行的值,并继续这样做,直到文件/循环结束.但目前,它只会添加前两行的值,而不是......
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)
在你的循环中,你为每一行重新分配totalPayroll值stoi(line) + stoi(line),所以它最终最终为2*789.
你需要保持连续的总和:
totalPayroll = totalPayroll + stoi(line);
Run Code Online (Sandbox Code Playgroud)
这也有一个使用复合赋值运算符的简短形式,它执行相同的操作:
totalPayroll += stoi(line);
Run Code Online (Sandbox Code Playgroud)