請問您可以看看下面的代碼。第二個while循環不起作用。如果我刪除 第一個while循環它工作正常。我做錯了什麼?我相信它與getline()
有關,但不知道如何。getline()不能用於第二個調用
現在代碼已更新。 現在矢量「行」包含7個字符串,每個都是一個逗號的長句子,我想分析每個元素並將其存儲在2d向量中,for循環只是爲線的第一個元素執行此操作。例如, ; line = {「hell,peell,delll,」,「peer,esdd,rsdd」,.....等等} 現在在向量厄運的第一行我想{地獄,皮爾,delll}和在第二行 我想{peer,sedd,rsdd}等等。 問題是for循環只存儲的std ::矢量線的第一個元素。**
#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;
}
代碼現在被更新。 現在矢量「行」包含7個字符串,每個都是一個逗號的長句子,我想分析每個元素並將其存儲在2d向量中,for循環只是爲線的第一個元素執行此操作。例如, ; line = {「hell,peell,delll,」,「peer,esdd,rsdd」,.....等等} 現在在向量厄運的第一行我想{地獄,皮爾,delll}和在第二行 我想{peer,sedd,rsdd}等等。 問題在於for循環只存儲了std :: vector行的第一個元素。
非常感謝你 – user144905 2014-09-02 16:28:00
一兩件事,我沒有你所說的話,它的工作,但現在我想提出的第二個而循環迴路INT一個,這僅適用於第一次迭代。 – user144905 2014-09-02 16:53:59
@ user144905我不明白......你能改述嗎? – randomusername 2014-09-02 16:55:20