问题描述
- fread()> 0 入口条件为假,为何进入了循环
-
片段代码:while((num = fread(temp, sizeof(char), 512, ifp)) > 0); { fwrite(temp, sizeof(char), 512, ofp); printf("%d", num); }
printf("%d", num); 得到的输出为0.
ifp指向的文件只有几个字符小于512.
解决方案
while 后多一个分号 ;
所以无论 while 是否成立都会执行的。
解决方案二:
fread返回值
实际读取的元素个数。如果返回值与count不相同,则可能文件结尾或发生错误。从ferror和feof获取错误信息或检测是否到达文件结尾。
还有可能是你的文件fread出错了,你查看一下错误信息
时间: 2025-01-01 11:32:57