将线分成整数

LM.*_*LM. 0 c++ stdin input std

我有一个我读取的文件,它包含一堆行,每行都有不同数量的整数,我很难将它分成一个向量的向量向量.

这是我目前的代码.

std::vector<int> read_line()
{
    std::vector<int> ints;
    int extract_int;
    while((const char*)std::cin.peek() != "\n" && std::cin.peek() != -1)
    {
        std::cin >> extract_int;
        ints.push_back(extract_int);
    }
    return ints;
}
std::vector<std::vector<int> > read_lines()
{
    freopen("D:\\test.txt", "r", stdin);
    freopen("D:\\test2.txt", "w", stdout);
    std::vector<std::vector<int> > lines;
    while(!std::cin.eof())
    {
        lines.push_back(read_line());
    }
    return lines;
}
Run Code Online (Sandbox Code Playgroud)

问题是所有的整数都被读作一行.

我究竟做错了什么?

Amb*_*ber 7

您可能希望使用getline()一行读取,然后使用该行中的字符串流,而不是尝试将整个文件视为单个流.