请您查看以下代码。第二个while循环不起作用。如果我删除
第一个while循环它工作正常。我做错了什么?我确信它与getline()
有关,但不知道如何。
现在代码已更新。 现在,向量“line”包含7个字符串,每个字符串都是逗号的长句,我想解析每个元素并将其存储在2d向量中,for循环只为行的第一个元素执行此操作。 例如; line = {“hell,peell,delll”,“peer,esdd,rsdd”,.....等等} 现在在矢量厄运的第一行我想要{地狱,佩尔,戴尔}和第二行 我想要{peer,sedd,rsdd}等等。 问题是for循环只存储std :: vector line的第一个元素。**
#include<iostream>
#include<fstream>
#include<sstream>
#include<vector>
using namespace std;
int main()
{
ifstream moodle("moodlelist.csv");
ifstream official("officiallist.csv");
vector<string> line;
vector<vector<string>> mood;
string value1;
string value2;
istringstream ss(value1);
int col=0;
while ( official.good())
{
getline ( official, value1);
line.push_back(value1);
}
for (int i=0;i<line.size();i++)
{
value1=line[i];
cout<<value1<<endl;
ss.str(value1);
while(getline(ss,value2, ','))
{
row.push_back(value2);
}
mood.push_back(row);
row.clear();
}
return 0;
}
现在代码已更新。 现在,向量“line”包含7个字符串,每个字符串都是逗号的长句,我想解析每个元素并将其存储在2d向量中,for循环只为行的第一个元素执行此操作。 例如; line = {“hell,peell,delll”,“peer,esdd,rsdd”,.....等等} 现在在矢量厄运的第一行我想要{地狱,佩尔,戴尔}和第二行 我想要{peer,sedd,rsdd}等等。 问题是for循环只存储std :: vector line的第一个元素。
答案 0 :(得分:2)
设置value1
的值后,您需要将该值存储在ss
中。
value1 = "hello,name,apple,sey";
ss.str(value1)