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