我试图逐行读取txt文件,其中每行可能有不同数量的元素.我找到了向量的向量,但我无法弄清楚为什么我的只是写入向量中的第一个向量.所有其他人都是空的.
以下是数据中代码片段的读取:
vector<vector<int>> all(numverts);
for (int i = 0; i <= (numverts - 1); i++) {
// reads a line of data
vector<int> edges;
int connect;
while (filein >> connect) {
edges.push_back(connect);
}
all[i] = edges;
edges.clear();
}
Run Code Online (Sandbox Code Playgroud)
你可以使用getline和stringstream.这样,文件的每一行都被单独读取,然后输入到向量中(通过字符串流).
vector<vector<int> > all(numverts);
for(int i = 0; i < numverts; i++)
{
std::string line;
std::getline(filein, line);
std::stringstream lineStream(line);
int connect;
while(lineStream >> connect)
{
all[i].push_back(connect);
}
}
Run Code Online (Sandbox Code Playgroud)