【千律】C++基础:通过函数实现文件的拷贝与复制

#include <fstream>
#include <iostream>
using namespace std;

// 将文件1的内容拷贝到文件2中(TXT文件)
void CopyFile(char* iread_file, char* write_file)
{
	// 初始化读取和写入
	ifstream iread_txt;                     // 初始化输入流 
	ofstream write_txt;                     // 初始化输出流 

	// 打开读取文件(保留原有信息)
	iread_txt.open(iread_file, ios::app);

	// 打开写入文件(清除原有信息)
	write_txt.open(write_file);

	// 判断读取文件是否打开
	if (!iread_txt.is_open())
	{
		cout << "file open is error!" << iread_file << endl;
		return;
	}

	// 判断写入文件是否打开
	if (!write_txt.is_open())
	{
		cout << "file open is error!" << write_file << endl;
		return;
	}

	// 将读取文件的文件指针置于末尾
	iread_txt.seekg(0, ios::end);

	// 获取文件字节数目
	int file_size = (int)iread_txt.tellg() + 1;

	// 动态申请内存
	char* save_words = new char[file_size] {0};

	// 字符串清零
	memset(save_words, 0, file_size);
	
	// 将文件指针恢复至初始
	iread_txt.seekg(0, ios::beg);

	// 读取文件
	iread_txt.read(save_words, file_size);
		
	// 计算字符串长度
	int	len = strlen(save_words) + 1;

	// 将字符串写入文件中
	write_txt.write(save_words, len);

	// 关闭输入流和输出流
	write_txt.close();
	iread_txt.close();

	// 清除申请的动态内容
	delete[] save_words;

	// 输出完成信息
	cout << "文件拷贝完毕!" << endl;
}

int main()
{
	//  获取文件名称
	char* iread_file = "D:\\words.txt";
	char* write_file = "D:\\copy_words_files.txt";

	// 实现文件拷贝
	CopyFile(iread_file, write_file);

	return 0;
}

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿飞_Y

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值