【发布时间】:2013-11-03 17:28:33
【问题描述】:
假设我有一个二进制文件;它包含正二进制数,但用大端写成 32 位整数
如何阅读此文件?我现在有这个。
int main() {
FILE * fp;
char buffer[4];
int num = 0;
fp=fopen("file.bin","rb");
while ( fread(&buffer, 1, 4,fp) != 0) {
// I think buffer should be 32 bit integer I read,
// how can I let num equal to 32 bit big endian integer?
}
return 0;
}
【问题讨论】:
-
只是好奇 - 为什么你的代码与这个相同:stackoverflow.com/questions/13001183/…? ;-)
-
避免使用
fopen并使用适当的 RAII 感知类,例如std::fstream。你的代码可能是异常不安全的,而且你没有调用fclose,所以你正在泄漏资源。
标签: c++