社区
C语言
帖子详情
关于读取bin文件的问题
dicandicanfoxyz
2011-11-20 07:36:35
我现在要从bin文件读取数据,现在的做法是这样的:
if((temp = fgetc(fp))!=EOF)
{
DataBuffer[DataCount] = temp;
DataCount++;
}
else
break;
但是每次读取的数据只有一部分,是不是我的结束判断有问题?有这方面经验的朋友吗?
...全文
312
7
打赏
收藏
关于读取bin文件的问题
我现在要从bin文件读取数据,现在的做法是这样的: if((temp = fgetc(fp))!=EOF) { DataBuffer[DataCount] = temp; DataCount++; } else break; 但是每次读取的数据只有一部分,是不是我的结束判断有问题?有这方面经验的朋友吗?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
小笨同学
2011-11-20
打赏
举报
回复
LZ还没解释为什么只读到一部份数据
dicandicanfoxyz
2011-11-20
打赏
举报
回复
[Quote=引用 4 楼 zhykzhykzhyk 的回复:]
引用 3 楼 dicandicanfoxyz 的回复:
引用 2 楼 zhykzhykzhyk 的回复:
temp需要定义为int,你这么做了没有?如果char是有符号的,那么当读到0xFF的时候得到的值等于-1,这就是EOF的定义。
现在情况是我的文件太大了,用fgetc会不会效率太低啊!
用fgetc的效率损失主要在函数调用上,文件的缓存始终存在。
如果你的确在这……
[/Quote]
哦,明白了,呵呵!谢谢!
柯本
2011-11-20
打赏
举报
回复
查下你文件的打开方式,在windows下,二进制文件读打开要用"rb"
fp=fopen("xxx","rb");否则在文件中如果数据是0x1a的话,它就会返回EOF的
zhykzhykzhyk
2011-11-20
打赏
举报
回复
[Quote=引用 3 楼 dicandicanfoxyz 的回复:]
引用 2 楼 zhykzhykzhyk 的回复:
temp需要定义为int,你这么做了没有?如果char是有符号的,那么当读到0xFF的时候得到的值等于-1,这就是EOF的定义。
现在情况是我的文件太大了,用fgetc会不会效率太低啊!
[/Quote]
用fgetc的效率损失主要在函数调用上,文件的缓存始终存在。
如果你的确在这里遇到了效率问题,可以换用fread来读取整块。
dicandicanfoxyz
2011-11-20
打赏
举报
回复
[Quote=引用 2 楼 zhykzhykzhyk 的回复:]
temp需要定义为int,你这么做了没有?如果char是有符号的,那么当读到0xFF的时候得到的值等于-1,这就是EOF的定义。
[/Quote]
现在情况是我的文件太大了,用fgetc会不会效率太低啊!
zhykzhykzhyk
2011-11-20
打赏
举报
回复
temp需要定义为int,你这么做了没有?如果char是有符号的,那么当读到0xFF的时候得到的值等于-1,这就是EOF的定义。
小笨同学
2011-11-20
打赏
举报
回复
如果是二进制文件的话,有可能提前遇到EOF(-1),尝试用feof()试试
C#
读取
BIN
文件
内容
C#
读取
BIN
文件
内容,获取其中数据并显示。用于对
BIN
文件
的操作。
Qt利用串口
读取
bin
文件
Qt利用串口
读取
bin
文件
,并采用定时器把
bin
文件
发送出去
vc
读取
bin
文件
读取
bin
文件
mfc工程
文件
可直接运行
本代码使用Qt
读取
bin
文件
中的数据
这是一个用Qt
读取
bin
数据
文件
的代码。
C#
读取
bin
文件
版本:VS2010 C#
读取
bin
文件
,并显示在TextBox控件内
C语言
69,382
社区成员
243,073
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章