簡體   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