在 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 位)的主要内容,如果未能解决你的问题,请参考以下文章
在 Powershell 中,按记录类型拆分大型文本文件的最有效方法是啥?
从 VS 窗口 c++ 项目迁移到 linux 项目的最有效方法是啥?