在 C++ 中从文件末尾读取的最有效方法是啥? (解析文件中的最后 128 位)

Posted

技术标签:

【中文标题】在 C++ 中从文件末尾读取的最有效方法是啥? (解析文件中的最后 128 位)【英文标题】:What is the most efficient way to read from the end of a file in c++? (Parsing last 128 bits in a file)在 C++ 中从文件末尾读取的最有效方法是什么? (解析文件中的最后 128 位) 【发布时间】:2012-03-10 17:16:06 【问题描述】:

我能想到几种快速读取最后 128 位的方法,但哪种方法最简单、最有效?

【问题讨论】:

将文件指针移动到EOF-16并读取直到EOF 我还没有写任何东西,但我要做的是读取文件大小,然后寻找文件大小 - 128。虽然这似乎不是最优雅的解决方案。 @juergen d 哈哈猜这是一个好的解决方案。 【参考方案1】:

跳到最后阅读:

char buf[16];

std::ifstream infile("thefile.bin", std::ios::binary);
infile.seekg(16, std::ios::end);

if (!infile || !infile.read(buf, 16))

    // error! Maybe die.


// process buf

【讨论】:

@user979663:因为在大多数架构上 128 位是 16 字节。

以上是关于在 C++ 中从文件末尾读取的最有效方法是啥? (解析文件中的最后 128 位)的主要内容,如果未能解决你的问题,请参考以下文章

从 C++ 调用 Java 方法的最简单方法是啥?

在 Powershell 中,按记录类型拆分大型文本文件的最有效方法是啥?

在 C++ 中读取格式化输入的最简单方法是啥?

从 VS 窗口 c++ 项目迁移到 linux 项目的最有效方法是啥?

将 numpy 数组传递给 c++ 函数并返回 numpy 数组作为输出的最有效方法是啥?

Python - 生成填充的最有效方法是啥?