我有一个程序,需要从多行文本文件中输入。每行是学生的信息,并且该信息也用逗号分隔。C++逗号分隔/ getline
我有什么到目前为止
stringstream ss;
string data = "";
string student[50] = "";
int i = 0;
ifstream inFile;
inFile.open("file.txt");
while(getline(inFile, student[i]))
{
cout << student[i] << endl;
i++;
}
注意到每一行,并将其分配到学生的阵列。现在每个学生都有自己的位置。
因此,我也必须将行分解成每个组件(名称,dob,gpa,地址等),这些将在Student类中完成。
我都这样了,学生变量将是一条从文件
stringstream ss(student);
while(getline(ss, data, ',')){
cout << data << endl;
}
输出的所有数据单独的字符串。
问题是: 如何更改stringstream将分配给较低代码的什么变量(目标不是输出,我做了测试以查看发生了什么),是否必须创建数据一个数组,然后将该数组的元素分配给变量?
是否有一个话题涉及到分隔符我查过了还是不明白?
感谢
bUmp。如果任何人都可以帮助,我将不胜感激。我不会在接下来的一个小时左右,但我会回到任何可以帮助的人身上。再次感谢 – user3562657 2014-10-18 18:40:47
你的'Student'类是什么样的?如果'getline(ss,data,',')'正确地分解了你的输入,你可以简单地在循环中使用'getline(ss,studentVar.name',')'和其余的'Student'变量。 – IllusiveBrian 2014-10-18 18:49:07
如果你想重新分配'std :: stringstream',你可以这样做:'ss.clear(); ss.str(“新字符串数据”);'。 – Galik 2014-10-18 19:18:33