繁体   English   中英

c二进制文件读取问题

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM