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;
}

代码验证:

相关推荐
看山还是山,看水还是。1 小时前
c#进度条实现方法
c语言·开发语言·笔记·c#
疑惑的杰瑞2 小时前
[C语言]连子棋游戏
c语言·开发语言·游戏
街 三 仔3 小时前
【C语言零基础入门篇 - 3】:格式化输入输出、字符操作和sizeof运算符揭秘
c语言·开发语言
.普通人3 小时前
c语言--力扣简单题目(链表的中间节点)讲解
c语言·leetcode·链表
_Chocolate3 小时前
十大排序(一):冒泡排序
c语言·数据结构·算法
running thunderbolt4 小时前
C++:类和对象全解
c语言·开发语言·c++·算法
星毅要努力5 小时前
【C语言编程】【小游戏】【俄罗斯方块】
c语言·开发语言·学习·游戏
埋头编程~5 小时前
【初阶数据结构】详解树和二叉树(一) - 预备知识(我真的很想进步)
c语言·数据结构·c++·学习
毅凉5 小时前
C/C++笔记
c语言·c++
DdddJMs__1356 小时前
C语言 | Leetcode题解之第403题青蛙过河
c语言·数据结构·算法