c++ - fstream - 如何 seekg() 以从末尾定位 x

标签 c++ fstream seekg

我正在寻找一种方法来将我的 get 指针设置在 fstream 末尾的位置 x。

我试过了

file.seekg(-x, ios_base::end);

但根据this question ,这一行是未定义的行为。

  • 我怎样才能以任何方式从 fstream 的末尾寻找 x 的位置?

最佳答案

如果你想把你的指针设置在距离末端x的位置,你需要知道末端在哪里,所以你需要开始:

file.seekg(0, ios_base::end);
int length = file.tellg();

当你知道文件长度时,你可以设置你的指针:

file.seekg(length - x, ios_base::beg);

关于c++ - fstream - 如何 seekg() 以从末尾定位 x,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31538554/

相关文章:

c++ - 读取文本文件时 seekg() 的奇怪偏移

C++ 慢速读取/搜索

c++ - fstream 寻找 : position stays at -1

c++ - 链接列表与 vector

c++ - Qt 5 (Qt Quick) MenuItem 大部分时间显示为空白

c++ sprintf 函数和 fstream 来创建/检查文本文件

c++ - 写入二进制数据

c++ - 似乎无法在 main 中调用一个类

C++ Linux TickCount

c++ - fstream 和 setw 没有正确对齐输出