您好,欢迎访问三七文档
程序1根据程序提示从键盘输入一个已存在的文本文件的完整文件名,再输入一个新文本文件的完整文件名,然后将已存在的文本文件中的内容全部复制到新文本文件中,利用文本编辑软件,通过查看文件内容验证程序执行结果。源程序:#includestdio.h#includestdlib.h#defineMAXLEN80main(){FILE*fpSrc=NULL;FILE*fpDst=NULL;charch;charsrcFilename[MAXLEN];/*源文件名*/chardstFilename[MAXLEN];/*目标文件名*/printf(Inputsourcefilename:);scanf(%s,srcFilename);/*输入源文件名*/if((fpSrc=fopen(srcFilename,r))==NULL)/*只读方式打开源文件*/{printf(can'topenfile%s!\n,srcFilename);exit(0);}printf(Inputdestinationfilename:);scanf(%s,dstFilename);/*输入目标文件名*/if((fpDst=fopen(dstFilename,w))==NULL)/*只写方式打开目标文件*/{printf(can'topenfile%s!\n,dstFilename);exit(0);}/*文件复制*/while((ch=fgetc(fpSrc))!=EOF){if(fputc(ch,fpDst)==EOF){printf(Copyfailed!);exit(0);}}printf(Copysucceed.\n);fclose(fpSrc);/*关闭源文件*/fclose(fpDst);/*关闭目的文件*/}程序2模拟DOS命令下的COPY命令,在DOS状态下输入命令行,以实现将一个已存在的文本文件中的内容全部复制到新文本文件中,利用文本编辑软件查看文件内容,验证程序执行结果。源程序:/*源文件名:mycopy.c*/#includestdio.h#includestdlib.hintCopyFile(constchar*srcName,constchar*dstName);main(intargc,char*argv[]){charch;if(argc!=3){printf(toofewparameters!\n);exit(0);}if(CopyFile(argv[1],argv[2]))/*文件复制*/{printf(Copysucceed.\n);}else{perror(Copyfailed);}}/*函数功能:把srcName文件内容复制到dstName函数入口参数:文件路径函数返回值:非0值表示复制成功,否则表示出错*/intCopyFile(constchar*srcName,constchar*dstName){FILE*fpSrc=NULL;FILE*fpDst=NULL;intch,rval=1;if((fpSrc=fopen(srcName,r))==NULL)/*只读方式打开源文件*/gotoERROR;if((fpDst=fopen(dstName,w))==NULL)/*只写方式打开目标文件*/gotoERROR;/*复制文件*/while((ch=fgetc(fpSrc))!=EOF){if(fputc(ch,fpDst)==EOF)gotoERROR;}fflush(fpDst);/*确保存盘*/gotoEXIT;ERROR:rval=0;EXIT:if(fpSrc!=NULL)fclose(fpSrc);if(fpDst!=NULL)fclose(fpDst);returnrval;}程序3根据提示从键盘输入一个已存在的文本文件的完整文件名,再输入另一个已存在的文本文件的完整文件名,然后将第一个文本文件的内容追加到第二个文本文件的原内容之后,利用文本编辑软件查看文件内容,验证程序执行结果。源程序:#includestdio.h#defineMAXLEN80intAppendFile(constchar*srcName,constchar*dstName);main(){charsrcFilename[MAXLEN];/*源文件名*/chardstFilename[MAXLEN];/*目标文件名*/printf(Inputsourcefilename:);scanf(%s,srcFilename);/*输入源文件名*/printf(Inputdestinationfilename:);scanf(%s,dstFilename);/*输入目标文件名*/if(AppendFile(srcFilename,dstFilename))/*文件追加*/{printf(Appendsucceed.\n);}else{perror(Appendfailed);}}/*函数功能:把srcName文件内容复制到dstName函数入口参数:文件路径函数返回值:非0值表示复制成功,否则表示出错*/intAppendFile(constchar*srcName,constchar*dstName){FILE*fpSrc=NULL;FILE*fpDst=NULL;intch,rval=1;if((fpSrc=fopen(srcName,r))==NULL)/*只读方式打开源文件*/gotoERROR;if((fpDst=fopen(dstName,a))==NULL)/*追加方式打开目标文件*/gotoERROR;/*文件追加*/while((ch=fgetc(fpSrc))!=EOF){if(fputc(ch,fpDst)==EOF)gotoERROR;}fflush(fpDst);/*确保存盘*/gotoEXIT;ERROR:rval=0;EXIT:if(fpSrc!=NULL)fclose(fpSrc);if(fpDst!=NULL)fclose(fpDst);returnrval;}程序4根据提示从键盘输入一个已存在的文本文件的完整文件名,再输入另一个已存在的文本文件的完整文件名,然后将源文本文件的内容追加到目的文本文件的原内容之后,并在程序运行过程中显示源文件和目的文件中的文件内容,以此来验证程序执行结果。源程序:#includestdio.h#defineMAXLEN80intAppendFile(constchar*srcName,constchar*dstName);intDisplayFile(constchar*srcName);main(){charsrcFilename[MAXLEN];/*源文件名*/chardstFilename[MAXLEN];/*目标文件名*/printf(Inputsourcefilename:);scanf(%s,srcFilename);/*输入源文件名*/printf(Inputdestinationfilename:);scanf(%s,dstFilename);/*输入目标文件名*/if(!DisplayFile(srcFilename))perror(Displaysourcefilefailed);if(!DisplayFile(dstFilename))perror(Displaydestinationfilefailed);if(AppendFile(srcFilename,dstFilename))/*文件追加*/{printf(Appendsucceed.\n);DisplayFile(dstFilename);}else{perror(Appendfailed);}}/*函数功能:把srcName文件内容复制到dstName函数入口参数:文件路径函数返回值:非0值表示复制成功,否则表示出错*/intAppendFile(constchar*srcName,constchar*dstName){FILE*fpSrc=NULL;FILE*fpDst=NULL;intch,rval=1;if((fpSrc=fopen(srcName,r))==NULL)/*只读方式打开源文件*/gotoERROR;if((fpDst=fopen(dstName,a))==NULL)/*追加方式打开目标文件*/gotoERROR;/*文件追加*/while((ch=fgetc(fpSrc))!=EOF){if(fputc(ch,fpDst)==EOF)gotoERROR;}fflush(fpDst);/*确保存盘*/gotoEXIT;ERROR:rval=0;EXIT:if(fpSrc!=NULL)fclose(fpSrc);if(fpDst!=NULL)fclose(fpDst);returnrval;}/*函数功能:显示srcName文件内容函数入口参数:文件路径函数返回值:非0值表示显示成功,否则表示出错*/intDisplayFile(constchar*srcName){FILE*fpSrc=NULL;intch,rval=1;if((fpSrc=fopen(srcName,r))==NULL)/*只读方式打开源文件*/gotoERROR;/*文件显示*/printf(File%scontent:\n,srcName);while((ch=fgetc(fpSrc))!=EOF){if(fputc(ch,stdout)==EOF)gotoERROR;}printf(\n);gotoEXIT;ERROR:rval=0;EXIT:if(fpSrc!=NULL)fclose(fpSrc);returnrval;}思考题:fprintf(fpDst,%c,ch);==fputc(ch,fpDst);
本文标题:c语言文件操作
链接地址:https://www.777doc.com/doc-6133835 .html