目录
题目要求
在当前目录中创建一个 data1.txt 文件,并存储一些内容
再将 data1.txt 文件的内容拷贝到 data2.txt 文件中
代码思路
以读的形式打开 data1.txt 文件,再以写的方式打开 data2.txt 文件,并且分别判断是否成功打开
成功打开后,利用 fgetc 函数依次读取 data1.txt 文件中的内容,并用 fputc 函数存放入 data2.txt 文件中,直到 fgetc 读取结束
最后再关闭 data1.txt 和 data2.txt 文件
代码实现
代码演示:
#include<stdio.h>
int main()
{
// 以读的方式打开 "data1.txt" 文件
FILE* pfRead = fopen("data1.txt", "r");
// 判断是否打开成功
if (pfRead == NULL)
{
perror("open file for read");
return -1;
}
// 以写的方式打开 "data2.txt" 文件
FILE* pfWrite = fopen("data2.txt", "w");
// 判断是否打开成功
if (pfWrite == NULL)
{
// 报错前先关闭 pfRead 文件指针
fclose(pfRead);
pfRead = NULL;
perror("open file for write");
return -1;
}
// 拷贝文件
int ch = 0;
while ((ch = fgetc(pfRead)) != EOF)
{
fputc(ch, pfWrite);
}
// 判断 pfRead 是否是遇到了文件末尾才结束
if (feof(pfRead) != 0)
{
printf("拷贝成功\n");
}
else
{
printf("拷贝失败\n");
return -2;
}
// 关闭文件
fclose(pfRead);
pfRead = NULL;
fclose(pfWrite);
pfWrite = NULL;
return 0;
}
代码验证: