如何使用C ++以相反的顺序(即从eof)读取文本文件?
答案 0 :(得分:3)
是的,但你基本上必须手动完成。
基本算法如下:
is.seekg(0, is.end)
is.tellg()
答案 1 :(得分:1)
如果文件足够小以致整个内容很容易适合内存,那么编码将文件转发到字符串然后在事后反转该字符串就会快得多且容易得多。
如果内容不适合内存,则必须使用nneonneo的解决方案。最好关闭缓冲。
答案 2 :(得分:0)
只需在istream类中使用seekg和相关函数即可。这是一个有效的例子。测试
#include <fstream>
#include <iostream>
using namespace std;
int main()
{
ifstream in("file.txt");
// Get the length of the file
in.seekg(0, in.end);
int len = in.tellg();
// Start reading the file in reverse
char c;
while (len--)
{
in.seekg(len, in.beg);
in >> c;
cout << c;
}
}