《2022年c语言编程文件编程 .pdf》由会员分享,可在线阅读,更多相关《2022年c语言编程文件编程 .pdf(8页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、文件编程练习程序 1 根据程序提示从键盘输入一个已存在的文本文件的完整文件名,再输入一个新文本文件的完整文件名,然后将已存在的文本文件中的内容全部复制到新文本文件中,利用文本编辑软件,通过查看文件内容验证程序执行结果。源程序:#include #include #define MAXLEN 80 main() FILE *fpSrc = NULL; FILE *fpDst = NULL; char ch; char srcFilenameMAXLEN; /* 源文件名*/ char dstFilenameMAXLEN; /* 目标文件名*/ printf(Input source filena
2、me:); scanf(%s, srcFilename); /* 输入源文件名*/ if (fpSrc = fopen(srcFilename,r) = NULL) /*只读方式打开源文件*/ printf(cant open file %s!n, srcFilename); exit(0); printf(Input destination filename:); scanf(%s, dstFilename); /* 输入目标文件名*/ if (fpDst = fopen(dstFilename,w) = NULL) /* 只写方式打开目标文件*/ printf(cant open file
3、 %s!n, dstFilename); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 8 页 - - - - - - - - - 第 2 章上机实验指导137exit(0); /* 文件复制 */ while (ch = fgetc(fpSrc) != EOF) if (fputc(ch, fpDst) = EOF) printf(Copy failed!); exit(0); printf(Copy succeed.n); fclose(fpSrc); /* 关闭源
4、文件 */ fclose(fpDst); /*关闭目的文件 */ 程序 2 模拟 DOS 命令下的COPY 命令,在 DOS 状态下输入命令行,以实现将一个已存在的文本文件中的内容全部复制到新文本文件中,利用文本编辑软件查看文件内容,验证程序执行结果。源程序:/* 源文件名: mycopy.c*/ #include #include int CopyFile(const char *srcName, const char *dstName); main(int argc, char *argv) char ch; if (argc != 3) printf(too few parameters
5、!n); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 8 页 - - - - - - - - - C 语言大学实用教程学习指导138exit(0); if (CopyFile(argv1, argv2) /* 文件复制 */ printf(Copy succeed.n); else perror(Copy failed); /* 函数功能:把srcName 文件内容复制到dstName 函数入口参数:文件路径函数返回值:非0 值表示复制成功,否则表示出错*/ int
6、CopyFile(const char *srcName, const char *dstName) FILE *fpSrc = NULL; FILE *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) =
7、 EOF) goto ERROR; fflush(fpDst); /* 确保存盘*/ goto EXIT; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 8 页 - - - - - - - - - 第 2 章上机实验指导139ERROR: rval = 0; EXIT: if (fpSrc != NULL) fclose(fpSrc); if (fpDst != NULL) fclose(fpDst); return rval; 程序 3根据提示从键盘输入一个已存在的文
8、本文件的完整文件名,再输入另一个已存在的文本文件的完整文件名,然后将第一个文本文件的内容追加到第二个文本文件的原内容之后,利用文本编辑软件查看文件内容,验证程序执行结果。源程序:#include #define MAXLEN 80 int AppendFile(const char *srcName, const char *dstName); main() char srcFilenameMAXLEN; /* 源文件名*/ char dstFilenameMAXLEN; /* 目标文件名*/ printf(Input source filename:); scanf(%s, srcFilen
9、ame); /*输入源文件名 */ printf(Input destination filename:); scanf(%s, dstFilename); /*输入目标文件名*/ if (AppendFile(srcFilename, dstFilename) /* 文件追加 */ 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 8 页 - - - - - - - - - C 语言大学实用教程学习指导140 printf(Append succeed.n); else
10、perror(Append failed); /* 函数功能:把srcName 文件内容复制到dstName 函数入口参数:文件路径函数返回值:非0 值表示复制成功,否则表示出错*/ int AppendFile(const char *srcName, const char *dstName) FILE *fpSrc = NULL; FILE *fpDst = NULL; int ch, rval = 1; if (fpSrc = fopen(srcName,r) = NULL) /*只读方式打开源文件*/ goto ERROR; if (fpDst = fopen(dstName,a) =
11、 NULL) /*追加方式打开目标文件*/ goto ERROR; /* 文件追加*/ while (ch=fgetc(fpSrc) != EOF) if (fputc(ch, fpDst) = EOF) goto ERROR; fflush(fpDst); /* 确保存盘*/ goto EXIT; ERROR: rval = 0; EXIT: 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 8 页 - - - - - - - - - 第 2 章上机实验指导141if (
12、fpSrc != NULL) fclose(fpSrc); if (fpDst != NULL) fclose(fpDst); return rval; 程序 4根据提示从键盘输入一个已存在的文本文件的完整文件名,再输入另一个已存在的文本文件的完整文件名,然后将源文本文件的内容追加到目的文本文件的原内容之后,并在程序运行过程中显示源文件和目的文件中的文件内容,以此来验证程序执行结果。源程序:#include #define MAXLEN 80 int AppendFile(const char* srcName, const char* dstName);int DisplayFile(con
13、st char* srcName);main() char srcFilenameMAXLEN; /* 源文件名*/ char dstFilenameMAXLEN; /* 目标文件名*/ printf(Input source filename:); scanf(%s, srcFilename); /* 输入源文件名*/ printf(Input destination filename:);scanf(%s, dstFilename); /* 输入目标文件名*/ if(!DisplayFile(srcFilename)perror(Display source file failed);if
14、(!DisplayFile(dstFilename)perror(Display destination file failed);if (AppendFile(srcFilename, dstFilename) /* 文件追加 */ 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 8 页 - - - - - - - - - C 语言大学实用教程学习指导142printf(Append succeed.n); DisplayFile(dstFilename); else
15、perror(Append failed); /* 函数功能:把srcName 文件内容复制到dstName 函数入口参数:文件路径函数返回值:非0 值表示复制成功,否则表示出错*/ int AppendFile(const char *srcName, const char *dstName) FILE *fpSrc = NULL; FILE *fpDst = NULL; int ch, rval = 1; if (fpSrc = fopen(srcName,r) = NULL) /*只读方式打开源文件*/ goto ERROR; if (fpDst = fopen(dstName,a) =
16、 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) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 8 页 - - - - - - - - -
17、第 2 章上机实验指导143fclose(fpSrc); if (fpDst != NULL) fclose(fpDst); return rval; /* 函数功能:显示srcName 文件内容函数入口参数:文件路径函数返回值:非0 值表示显示成功,否则表示出错*/ int DisplayFile(const char *srcName) FILE *fpSrc = NULL; int ch, rval = 1; if (fpSrc = fopen(srcName,r) = NULL) /*只读方式打开源文件*/ goto ERROR; /* 文件显示*/ printf(File %s content:n, srcName); while (ch=fgetc(fpSrc) != EOF) if (fputc(ch, stdout) = EOF)goto ERROR; printf(n); goto EXIT; ERROR: rval = 0; EXIT: if (fpSrc != NULL) fclose(fpSrc); return rval; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 8 页 - - - - - - - - -
限制150内