C ++从文件中读取 - 最后一个元素被读取两次

时间:2014-05-31 17:07:06

标签: c++ file-io stl eof

我试图读取包含多个可变长度列表的文件。每个列表都在一行上,我将其读入矢量。但每行上的最后一个元素将被存储到向量中两次。

我按照以下几行编码:

ifstream file;
file.open("myfile.txt", ifstream::in);
string line;
while(!file.eof())
{
        getline(file, line);
        stringstream buffer(line);
        vector<int> temp;
        while (!buffer.eof())
        {
                buffer >> num;
                temp.push_back(num);
        }
        for(vector<int>::iterator i = temp.begin(); i != temp.end(); ++i)
                cout << *i << ' ';
}

输入行由制表符分隔的整数组成。每行的最后一个元素后面还有一个制表符。 对于像

这样的行
1    3    4    2    

预期输出

1 3 4 2

我得到的输出是

1 3 4 2 2

0 个答案:

没有答案