题目
本题是中国海洋大学2022年研究生入学考试930程序设计基础编程题第2题。
题目:
有两个文件,让用户输入这两个文件的名称,然后将第一个文件的数据复制到第二个文件中。(10分)
以下是本篇文章正文内容,欢迎朋友们进行指正,一起探讨,共同进步。——来自考研路上的lwj。QQ:2394799692
一、解题思路
1,先定义两个字符数组用于接收两个文件名
2,分别用两个FILE*定义两个文件指针
3,fopen函数打开两个文件,第一个用r读方式,第二个用w写方式
4,判断文件打开是否有误
5,while循环+文件读取与输出函数进行文件复制
6,关闭这两个文件
二、代码部分
1.引入库
代码如下(示例):
#include<stdio.h>
2.主函数部分
代码如下(示例):
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了,可能会扣个一两分。