再读文件时如果采用以下方式:
- while(!feof())
- {
- fread或fscanf
- ...
- ...
- }
如果被读的文件的末尾有空格或回车等,则读完最后一个数据后再判断while的条件是真,最后一次读的数据就会被复制一遍,采用如下形式则不会出现这种情况:
- while(1)
- {
- fwrite或fscanf();
- if(feof())
- break;
- ...
- ...
- }
放这备用
今天发现,用fwrite写文件,即使没有刻意的写空格,也会出现这种情况
代码如下:
int _tmain(
int argc, _TCHAR* argv[])
{
FILE *fp=fopen(
"a",
"wb");
float a=1.6868;
fwrite(&a,
sizeof(
float), 1, fp);
fclose(fp);
fp=fopen(
"a",
"rb");
while(!feof(fp))
{
fread(&a,
sizeof(
float), 1, fp);
printf(
"%f ",a);
}
fclose(fp);
return 0;
}
输出结果是:
转载于:https://blog.51cto.com/buptdtt/643400
最后
以上就是潇洒小蘑菇最近收集整理的关于读入文件时最后一次重复的全部内容,更多相关读入文件时最后一次重复内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复