#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;
}
【千律】C++基础:通过函数实现文件的拷贝与复制
最新推荐文章于 2024-06-07 21:06:43 发布