片段代码:
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出错了,你查看一下错误信息