2012-03-10 53 views
1

我可以想到一些快速读取最后128位的方法,但哪种方法最简单,最有效?什么是从C++文件末尾读取最有效的方法? (解析文件中的最后128位)

+0

移动文件指针到'EOF-16'和读取直到'EOF'。 – 2012-03-10 17:19:10

+0

我还没有写任何东西,但是我要做的是读取文件大小,然后寻求文件大小 - 128.尽管它看起来不是最优雅的解决方案。 – carboncomputed 2012-03-10 17:20:22

+0

@juergen d哈哈猜测这是一个很好的解决方案。 – carboncomputed 2012-03-10 17:21:01

回答

4

跳转到结束和读:

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 
+0

为什么是16而不是128? – carboncomputed 2012-03-10 17:35:59

+2

@ user979663:因为在大多数体系结构中,128位是16字节。 – 2012-03-10 17:38:25

+0

太棒了,谢谢。 – carboncomputed 2012-03-10 17:42:36

相关问题