分享

fputc(c,out)

 WUCANADA 2013-01-29
最近在学C语言文件那一章的时候遇到了一个不明白的问题,请大家帮忙看一下。
file1.txt是磁盘中已经存在的一个文件,现将其内容复制到另一文件file2.txt中,程序是这样的:
#include<stdio.h>
 main()
  { FILE *in,*out;
   char c,infile[20],outfile[20];
   printf("Please input infile name:");
   scanf("%s",infile);
   printf("Please input outfile name:");
   scanf("%s",outfile);
   if((in=fopen(infile,"r"))==NULL)
     {  printf("cannot open the file!\n");
        exit(0);
     }
   if((out=fopen(outfile,"w"))==NULL)
     {  printf("cannot open the file!\n");
        exit(0);
     }
   while(!feof(in))
     {
       c=fgetc(in);
       fputc(c,out);
     }
    fclose(in);
    fclose(out);
  }
 在输入file1.txt回车,file2.txt回车后,发现file2文件内容的末尾多出来了一个奇怪的符号,
若将while那一部分修改如下,便不会再有那个奇怪的符号出现了:
    c=fgetc(in);
  while(c!=EOF)
   {  fputc(c,out);
     c=fgetc(in);
   }
 请问这是怎么回事啊?
问题在这里
在文件尾的时候,这两句话一样会执行
c=fgetc(in);
// 此时已经是EOF了,再输出,就是个乱码
fputc(c,out);

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多