C语言 ——— 编写代码,将一个文件的内容拷贝到另一个文件

目录

题目要求

代码思路

代码实现


题目要求

在当前目录中创建一个 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;
}

代码验证:

相关推荐
代码雕刻家6 小时前
C语言的左对齐符号-
c语言·开发语言
star learning white8 小时前
xmC语言8
c语言·开发语言·算法
赖small强9 小时前
【Linux C/C++开发】第16章:多线程编程基础
linux·c语言·c++·多线程编程·进程和线程的本质区别
nono牛9 小时前
Android Binder C/C++ 层详解与实践
android·c语言·binder
雨落在了我的手上11 小时前
C语言入门(十九):指针(5)
c语言
dvvvvvw12 小时前
展开式求和.c
c语言
dvvvvvw13 小时前
分子分母有关系的序列和.c
c语言
小武~13 小时前
Leetcode 每日一题C 语言版 -- 88 merge sorted array
c语言·算法·leetcode
是苏浙14 小时前
零基础入门C语言之C语言实现数据结构之栈
c语言·开发语言·数据结构
Codeking__14 小时前
查缺补漏c语言——c标准字符串函数
c语言·开发语言