[英]c binary file reading problems
嗨,我正在使用c读取二进制文件,如下所示链接文本
因此从二进制文件读取的所有信息都存储在“ char * buffer”中。 我有格式标准,其中说其中一行应该是
format: unsigned char, size: 1 byte
我正在执行以下操作:
printf("%x\n", buffer[N]);
但是当格式显示时我该怎么办:
format: unsigned short, size: 2 bytes
如果我这样做,这是正确的:
printf("%d%d\n", buffer[N], buffer[N+1]);
如果不能,您能告诉我正确的方法吗?
您还能告诉我以下是否是打印时的正确方法:
char %c
unsigned long %ul
unsigned short %d
unsigned char %x
double %f
long %ld
二进制文件中的所有数据均为小尾数格式! 非常感谢!
尝试printf("%d", (short)(buffer[N] + buffer[N+1]<<8))
。 现在请注意,我不得不假定缓冲区中的字节顺序具有存储在较低地址的两字节short
字节中的最低有效字节。
我可能已经写了*(short *)(&buffer[N])
,但是假设N具有正确的对齐方式以在您的平台上保留short
,并且缓冲区和平台在字节顺序上是一致的。
这实际上只是一个主题的巨大冰山的一角。 潜伏着许多微妙的问题,当您漫游到浮点值时,确实有一些微妙的问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.