C++ 如何将数据逐行放入向量中

C++ 如何将数据逐行放入向量中,c++,C++,我想逐行读取一个文本文件,因为每行中没有很多整数。我想对每一行进行排序,然后把它们放到一个向量的向量中。问题是我无法将它们逐行插入向量。我不能让他们停在队伍的尽头。这就是我现在拥有的。有人能帮我吗 例如,我的文本文件如下所示: 1 5 3 7 29 17 2 6 9 3 10 3 89 54 67 34 1: 1 3 5 7 17 29 2: 2 3 6 9 10 3: 3 34 54 67 89 我希望我的输出如下: 1 5 3 7 29 17 2 6 9 3 10 3 89 54 6

我想逐行读取一个文本文件,因为每行中没有很多整数。我想对每一行进行排序,然后把它们放到一个向量的向量中。问题是我无法将它们逐行插入向量。我不能让他们停在队伍的尽头。这就是我现在拥有的。有人能帮我吗

例如,我的文本文件如下所示:

1 5 3 7 29 17
2 6 9 3 10 
3 89 54 67 34
1: 1 3 5 7 17 29
2: 2 3 6 9 10
3: 3 34 54 67 89
我希望我的输出如下:

1 5 3 7 29 17
2 6 9 3 10 
3 89 54 67 34
1: 1 3 5 7 17 29
2: 2 3 6 9 10
3: 3 34 54 67 89
试试这个:

std::stringstream fin("2 1 3\n4 6 5\n10 9 7 8"); // Test data
std::vector<std::vector<int>> G_AL;
std::string lines;

while (getline(fin, lines)) {
    std::istringstream os(lines);
    std::vector<int> v;
    float temp;

    while(os >> temp)
        v.push_back(temp);

    sort(v.begin(), v.end());
    G_AL.push_back(v);
}

for (size_t i=0; i<G_AL.size(); ++i)
{
    std::cout << i+1 << ": ";
    for (auto const & v : G_AL[i])
        std::cout << v << " ";
    std::cout << std::endl;
}
您提供的代码中存在一些问题:

v向量是在循环之外声明的,因此由于v未被清除,所以每行的值都在不断累积。在循环中声明它可以修复问题,并避免必须清除它。 只有当我们读完这一行时,才能进行排序。 将v向量推到G_AL之后的值,而不是每行之后。 将浮点值与字符\n进行比较,这不起作用。事实上,如果没有要读取的浮点值,那么os>>temp行的计算结果将为false,因此无需再次测试流的结尾。
请在此处发布您的代码,不要使用图像。请阅读,除此之外,您必须将代码作为正确格式的文本发布,您需要发布,如果ifline!=例如,0语句。我们无法看到行是如何定义和初始化的。