读书人

[]c二进制文件读取出错, 各位帮帮忙,

发布时间: 2012-04-01 17:23:46 作者: rapoo

[求助]c二进制文件读取出错, 各位帮帮忙, 小弟先谢了!
读取一个3ds文件(就当普通2进制文件), fseek到0x5E86位置, 读取一个BYTE可以, 但读取WORD或DWORD就出错(只能读出第一个字节).

尝试从头全部读取为BYTE 或 WORD 或 DWORD, 则只能读取67个BYTE或33个WORD或16个DWORD就提示到达结尾了.

5e80行的数据是:
00005e80: 01 00 00 00 00 40 69 1A 00 00 67 72 61 79 43 6F

小弟先谢过了!

[解决办法]
代码,没代码咋帮你看呢?
[解决办法]
代码 贴出来
估计是
00005e80:这行8个字节
5e86后只剩2个字节了 。。。

[解决办法]
不对 是16字节
还是看代码吧
[解决办法]
呵呵,把文件point移动一下,找一下文件的len
[解决办法]
代码贴出来
[解决办法]
你那个文件为普通位二进制文件。
数据应该是连续的01串吧,每四位看作一个hex数,一行有16字节。
fseek(f, 0x5E86, SEEK_SET);这里的0x5e86是行还是字节 ?

[解决办法]
你的程序在windows?
在windows上,fopen时 "r ", "rb "是有区别的.
如果你用 "r "打开,fseek时,它的位置如何移动在c中没有定义.

你改成 "rb "打开试下.
[解决办法]
你需要判 fread是否成功了。
[解决办法]
文件以二进制打开比较稳妥,还要记得关[fclose].

读书人网 >C语言

热点推荐