feof读写最后会再读入一次FF怎么解决

capcapcap哈哈 2020-01-18 03:05:29
怎么才能够保证读到文件最后就停下来不读FF,能不能做个标志位还是怎么操作呢?
我写的程序如下:
while(!feof(fp))
{

buf[selectBitSize] = fgetc(fp);
}
应该怎么操作下呢,去大佬给思路。
...全文
78 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
寻开心 2020-01-18
  • 打赏
  • 举报
回复
fread(buffer, 1, 1024, fp); 少写了个参数
寻开心 2020-01-18
  • 打赏
  • 举报
回复
feof(fp) 必须是到尾巴了还读了一下,才发生设置eof的标记
可以如下方式
while (1) {
c = fgetc(fp);
if ( c == eof ) break;
else buf[selectBitSize]=c;
}
但是一个一个的读效率太低了
fread一次读一个数组,这个函数了解下
比如,定义一个char buffer[1024]
int nReadOK = fread(bufer, 1024, fp);
根据nReadOK来判断读取成功了多少,如果nReadOK是1024表示文件还有可能有剩余,继续读
如果不足1024表示到尾巴了,结束了

69,377

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧