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

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

你可能感兴趣的:(C++基础,c++,visual,studio)