【发布时间】:2016-02-09 14:40:04
【问题描述】:
我正在尝试从一个看起来像这样的文本文件中添加数字:
player1
132
41
player2
1150
323
player3
60
2
输出应该是这样的:
41
41
323
364
2
366
其中第二个数字将显示前一个数字的第一个数字的总和。但是,我最终得到了这个:
41
0
323
0
2
0
数据似乎显示正确,但我不明白为什么总和不在同一个循环中。这是我的代码:
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
struct player{
string name;
int nbmatches;
int nbvictories;
};
player data;
int main(){
ifstream readFile;
readFile.open("note.txt");
if (readFile.fail()){
cout << "not found" << endl;
}
else
{
readFile.clear();
while (!ws(readFile).eof()){
readFile >> data.name
>> data.nbmatches
>> data.nbvictories;
int totalvictories = 0;
data.nbvictories += totalvictories;
cout << data.nbvictories << endl;
cout << totalvictories << endl;
cout << endl;
}
}
system("pause");
}
【问题讨论】:
-
您正试图同时做两件事:从文件中读取数据,并保持运行总和。分别处理。
-
data.nbvictories += totalvictories;这是倒退吗? -
"int totalVictory = 0" 需要在循环之外
-
您将零添加到
data.nbvictories。这是因为您在每次迭代中都在初始化totalvictories。
标签: c++ file text while-loop sum