fun函数要求实现的功能是将指定源文件中的内容复制到指定的目标文件中,复制成功时函数返回值为1,失败是返回0,在复制过程中,把复制内容输出到终端屏幕。

发布于:2023-01-18 ⋅ 阅读:(527) ⋅ 点赞:(0)

#include <stdio.h>
#include <stdlib.h>
int fun(char *source, char *target)//声明了source和target函数
{FILE *fs,*ft; char ch;//FILE这个结构包含了文件操作的基本属性,对文件的操作都要通过这个结构的指针来进行
/**********found**********/
   if((fs=fopen(source, "r"))==NULL)//将指定源文件中的内容复制到指定的目标文件中,源文件只需读,因此以只读方式打开
      return 0;
   if((ft=fopen(target, "w"))==NULL)//将指定源文件中的内容复制到指定的目标文件中,源文件只需写,因此以只写方式打开
      return 0;
   printf("\nThe data in file :\n");
   ch=fgetc(fs);//从流中读fs字符
/**********found**********/
   while(!feof(fs))//循环的目的是不断读取源文件直至到达源文件的末尾,循环结束标志是已达到文件的末尾.(feof()函数来检查是否已经到了文件末尾,文件状态检测函数feof()的调用形式是:feof(fs))。
   {putchar(ch);
/**********found**********/
      fputc(ch,ft);//fputc函数的使用方法,fputc函数的调用形式是:fputc(ch, ft),ch是要输出的字符,由“ch=fgetc(fs)”从源文件读到字符ch,然后将ch写到目标文件中
      ch=fgetc(fs);
   }
   fclose(fs); fclose(ft);//fclose() 关闭流
   printf("\n\n");
   return 1;
}
main()
{char sfname[20] ="myfile1",tfname[20]="myfile2";
   FILE *myf; int i; char c;
   myf=fopen(sfname,"w");
   printf("\nThe original data :\n");
   for(i=1; i<30; i++){c='A'+rand()%25;fprintf(myf, "%c",c); printf("%c",c);}
   fclose(myf);printf("\n\n");
   if (fun(sfname, tfname) ) printf("Succeed!");
   else printf("Fail!");
}