概述
再读文件时如果采用以下方式:
- 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;
}
{
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
最后
以上就是潇洒小蘑菇为你收集整理的读入文件时最后一次重复的全部内容,希望文章能够帮你解决读入文件时最后一次重复所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复