2965 - 【设计型】第13章:文件操作 13.4
复制文件。根据顺序提示从键盘输入一个已存在的文本文件的完整文件名,再输入一个新文本文件的完整文件名,然后将已存在的文本文件中的内容全部复制到新文本中,利用文本编辑软件,通过查看文件内容验证程序执行结果。
Input
输入文件名;
第一个输入原文件名;
第二个输入复制的文件名;
Output
如果复制成功,显示"Copy succeed!"
失败了显示"Copy failed!”
Examples
Input
a.txt b.txt
Output
Copy failed!
Solution C
#include<stdio.h> #define N 80 int copyfile (const char *srcName,const char *dstName); int main() { char srcFilename[N] ; char dstFilename[N]; scanf("%s",srcFilename ); scanf("%s",dstFilename); if(copyfile(srcFilename,dstFilename)) printf("Copy succeed!\n"); else printf("Copy failed!\n"); return 0; } int copyfile(const char *srcName,const char *dstName) { FILE *fpSrc=NULL,*fpDst=NULL; int ch,rval=1; if((fpSrc=fopen(srcName,"r"))==NULL) goto ERROR; if((fpDst=fopen(dstName,"w"))==NULL) goto ERROR; while((ch=fgetc(fpSrc))!=EOF) { if(fputc(ch,fpDst)==EOF) goto ERROR; } fflush(fpDst); goto EXIT; ERROR: rval=0; EXIT: if(fpSrc!=NULL)fclose(fpSrc); if(fpDst!=NULL)fclose(fpDst); return rval; }
Solution C++
#include<bits/stdc++.h> using namespace std; int main() { char in[100]; char out[100]; char ch; cin>>in>>out; FILE *p1; FILE *p2; if((p1=fopen(in,"r"))==NULL) { cout<<"Copy failed!"; return 0; } if((p2=fopen(out,"w"))==NULL) { cout<<"Copy failed!"; return 0; } while(!feof(p1)) { ch=fgetc(p1); fputc(ch,p2); } fclose(p1); fclose(p2); cout<<"Copy succeed!"; }