如何在C ++中反向读取文件?

时间:2015-02-14 19:10:06

标签: c++ file ifstream

例如,我打开ifstream,我希望它不是像往常一样从当前位置读取,而是反向(从当前位置开始)?

2 个答案:

答案 0 :(得分:0)

您可以在C ++中使用随机文件操作。

对于ifstream ss,您可以编写命令ss.seekg(0, ios::end)以将文本文件中的指针移动到文本文件的末尾。现在,您可以使用x电流从当前位置移动ss.seekg(-x, ios::current)个字节数,然后在正向读取该位置的数据。然而,这是一个混乱的解决方案,因为您需要知道要向后移动多少位,或者必须重复计算。有关使用C ++进行随机文件操作的更多信息,请参阅http://www.learncpp.com/cpp-tutorial/137-random-file-io/

答案 1 :(得分:0)

如果你想阅读单个字符,你可以这样:

    is.seekg(0,is.end);
    while(is.tellg()>1)
    {
            is.seekg(-2,ios::cur);
            char ch;
            is.read(&ch,1);
            cout<<ch<<" ";
    }