首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

C语言 文件复制,源文件最后一行是空行时,复制出现有关问题,目标文件最后一行复制两行?

2013-07-01 
C语言 文件复制,源文件最后一行是空行时,复制出现问题,目标文件最后一行复制两行????????????????????????

C语言 文件复制,源文件最后一行是空行时,复制出现问题,目标文件最后一行复制两行????????????????????????????????????
本帖最后由 jameszhanglei123 于 2011-05-26 17:20:17 编辑 zhang.txt:
jo 122 2.000000 a

john 12 3.000000 z
                   //最后一行空行

zhang1.txt输出结果:
jo 122 2.000000 a
john 12 3.000000 z
john 12 3.000000 z
             //最后一行空行。

为什么john 12 3.000000 z复制了两次?
1、怎样输出和zhang.txt一样,正确的结果
2、怎样处理掉zhang1.txt最后一行输出的空行。




#include <stdio.h>
#include <string.h>
int main(void)
{
char buff[100];
FILE *fp,*fp1;
fp=fopen("zhang.txt","r");
fp1=fopen("zhang1.txt","w+");

while(!feof(fp)){
fgets(buff,100,fp);

if(buff[0]!='\n'){
fputs(buff,fp1);

}

}

fclose(fp);
fclose(fp1);
printf("\n");

return 0;
}


[解决办法]
在赋值之前先清一下 
 while(!feof(fp))
{
memset( buff, 0x00, sizeof(buff));
        fgets(buff,100,fp);
[解决办法]
老生常谈
当你到了文件最后一行时,feof并不知道,它还没有获得信息,只有你再一次读取时,它才知道确实到末尾了,但是导致你多进行了一次操作

热点排行