本题是中国海洋大学2022年研究生入学考试930程序设计基础编程题第2题。
题目:
有两个文件,让用户输入这两个文件的名称,然后将第一个文件的数据复制到第二个文件中。(10分)
以下是本篇文章正文内容,欢迎朋友们进行指正,一起探讨,共同进步。——来自考研路上的lwj。QQ:2394799692
1,先定义两个字符数组用于接收两个文件名
2,分别用两个FILE*定义两个文件指针
3,fopen函数打开两个文件,第一个用r读方式,第二个用w写方式
4,判断文件打开是否有误
5,while循环+文件读取与输出函数进行文件复制
6,关闭这两个文件
代码如下(示例):
#include<stdio.h>
代码如下(示例):
void main() { char s1[20], s2[20]; printf("请输入两个文件名,第一个是被复制文件,第二个是要复制到的文件:\n"); gets(s1); gets(s2); FILE* fp1 = fopen(s1, "r"); if (fp1 == NULL) { printf("open f1 erro!"); return -1; } FILE* fp2 = fopen(s2, "w"); if (fp2 == NULL) { printf("open f2 erro!"); return -1; } char c; while ((c = getc(fp1)) != EOF) { putc(c, fp2); } fclose(fp1); fclose(fp2); }
复制之前:
文件1:
你好啊,祝你取得良好成绩! 2022年一战成硕! 立志冲海大2394799692
文件2:
复制之后:
难易程度:中等
while循环一块文件复制的核心代码有点难以想象,特别是文件读取和输出的一些函数,这一点我把那个EOF错写成\0了,可能会扣个一两分。