为了账号安全,请及时绑定邮箱和手机立即绑定

c语言fread()返回总是0?

c语言fread()返回总是0?

SSM
红糖糍粑 2019-02-19 19:15:47
Uint16 BlockWrFlash[256]={0};fptr = fopen("codec.bin", "rb"); //加载数据ReturnLenth=256;kk=0;while(ReturnLenth==256) //加载代码{ReturnLenth=fread(BlockWrFlash,sizeof(short),256,fptr);DeviceAddr=kk*0x100;FlashWr(DeviceAddr);delay();kk++;}现在的问题出现在fread返回总是0,正常的是256才对,不知道哪里有问题了,请大大们指教!谢谢!
查看完整描述

3 回答

?
拉风的咖菲猫

TA贡献1995条经验 获得超2个赞

你没有检查fopen不成功的情况,即

fptr = fopen("codec.bin", "rb"); //加载数据

后加
if(fptr ==NULL)
{
printf("file can't open!\n");
return ;
}
可能是打开文件错误造成的。



查看完整回答
反对 回复 2019-03-26
?
慕村225694

TA贡献1880条经验 获得超4个赞

"codec.bin"的路径关系对么?默认走当前路径,但是根据编译环境,可能会有不同路径效果。尝试一下用绝对路径。

fseek设置一下读写位置到文件头。

如果还不行,你就把打开方式变成可读写的二进制,然后一次读一个字节。

查看完整回答
反对 回复 2019-03-26
  • 3 回答
  • 0 关注
  • 1275 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信