C语言输入两个文件名,将一个文件的内容复制到另一个文件上,如果文件不存在,需要先创建文件,在复制内容
时间: 2024-03-12 11:43:40 浏览: 17
好的,这是一个很基础的文件操作问题,下面是一个简单的实现:
```c
#include <stdio.h>
int main() {
char source_file[100], target_file[100];
FILE *source_fp, *target_fp;
char ch;
printf("请输入要复制的源文件名:");
scanf("%s", source_file);
printf("请输入目标文件名:");
scanf("%s", target_file);
// 打开源文件
source_fp = fopen(source_file, "r");
if (source_fp == NULL) {
printf("无法打开源文件!\n");
return 1;
}
// 创建目标文件
target_fp = fopen(target_file, "w");
if (target_fp == NULL) {
printf("无法创建目标文件!\n");
return 1;
}
// 复制文件内容
while ((ch = fgetc(source_fp)) != EOF) {
fputc(ch, target_fp);
}
// 关闭文件指针
fclose(source_fp);
fclose(target_fp);
printf("文件复制成功!\n");
return 0;
}
```
首先,我们使用 `scanf()` 函数获取用户输入的两个文件名。然后,使用 `fopen()` 函数打开源文件,并检查是否打开成功。如果打开失败,我们就输出错误信息,并退出程序。接下来,我们使用 `fopen()` 函数创建目标文件,并检查是否创建成功。如果创建失败,我们同样输出错误信息,并退出程序。
最后,我们使用 `fgetc()` 函数逐个读取源文件中的字符,并用 `fputc()` 函数将字符写入目标文件中。直到源文件的所有字符都被复制到目标文件中为止。最后,我们使用 `fclose()` 函数关闭文件指针,并输出文件复制成功的信息。
希望这个例子能够帮到你!