请教,关于用C读二进制文件问题。
时间:2010-08-23
来源:互联网
FILE *fd;
1方法:
fd = fopen(FILENAME,"rb"); //FILENAME为一二进制文件名
。。。。。
i=52;
i=((qu-161)*94+(wei-161))*8+i;
ret = fseek(fd,i,SEEK_SET);
ch1 = fgetc(fd);
ch2 = fgetc(fd);
结果:ret始终为0,ch1,ch2 也始终为0;
2方法:
sd = open(FILENAME,O_RDONLY);
...
i=52;
i=((qu-161)*94+(wei-161))*8+i;
ret = lseek(sd,i,SEEK_SET);
read(sd,&ch1,sizeof(ch1));
read(sd,&ch2,sizeof(ch2));
结果:ret返回值正确,ch1,ch2始终为0;
不知道是否是读二进制文件要有什么特殊要求,否则怎么会总错。需要怎样读啊,求大师帮忙。
作者: robin254817 发布时间: 2010-08-23
作者: zhuqing_739 发布时间: 2010-08-23
但是我始终不能将对应位置的数据放到我的变量ch1,ch2里,怎样才能做到呢?求解.
作者: robin254817 发布时间: 2010-08-23
我就想读二进制文件seek到的位置上的数据,然后存到我的变量ch1,ch2里,但是始终存不进去,怎么办?
作者: robin254817 发布时间: 2010-08-23
作者: davelv 发布时间: 2010-08-23
作者: davelv 发布时间: 2010-08-23
绝对没有seek出文件结尾,放心行了。二进制文件是否有空洞,因为文件不是我自己做的,所以不敢确定。不过这种可能性很少,那个二进制文件是矢量字库坐标文件,有空洞的话不是自找麻烦么。
作者: robin254817 发布时间: 2010-08-23
因为我最开始用fread不好使,才用fgetc试试,才知道同样不好使,杯具。。。

作者: robin254817 发布时间: 2010-08-23
作者: lenky0401 发布时间: 2010-08-23
6楼的说得很对啊!
作者: zhuqing_739 发布时间: 2010-08-23
作者: lenovo 发布时间: 2010-08-23

作者: pengjianbokobe 发布时间: 2010-08-23
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28