介绍
在本实验中,我们将学习如何使用 C++ 语言中的文件处理功能将一个文件的内容复制到另一个文件中。
包含头文件和命名空间
在第一步中,我们将包含必要的头文件和命名空间,以便继续编写代码。
#include <iostream>
#include <fstream>
using namespace std;
将一个文件复制到另一个文件
在这一步中,我们将执行以下操作:
- 创建
ifstream和ofstream类的对象。 - 检查它们是否连接到各自的文件。如果是,则继续;否则,请再次检查文件名。使用
getline()方法读取源文件的内容,并使用<<运算符将其写入目标文件(即将每一行从ifstream对象复制到ofstream对象)。 - 复制完成后,使用
close()方法关闭文件。
void copyFile(string sourceFile, string destinationFile){
string line;
// 创建 ifstream 和 ofstream 对象
ifstream sourceFileStream(sourceFile);
ofstream destinationFileStream(destinationFile);
// 从源文件读取并写入目标文件
if(sourceFileStream.is_open() && destinationFileStream.is_open()){
while(getline(sourceFileStream, line)){
destinationFileStream << line << "\n";
}
cout<<"Copy Finished"<<endl;
}
else{
printf("Cannot read File");
}
// 关闭文件
sourceFileStream.close();
destinationFileStream.close();
}
主函数
在这一步中,我们将创建一个主函数,通过调用 copyFile() 函数来执行文件复制操作。
int main(){
string sourceFile = "original.txt";
string destinationFile = "copy.txt";
copyFile(sourceFile, destinationFile);
return 0;
}
编译和运行
在这一步中,由于代码文件保存在 ~/project/main.cpp,我们可以将当前目录切换到 ~/project,并在终端中运行以下命令:
g++ main.cpp -o main
./main
这将编译并执行程序,并产生以下输出:
Copy Finished
最终代码
#include <iostream>
#include <fstream>
using namespace std;
void copyFile(string sourceFile, string destinationFile){
string line;
// 创建 ifstream 和 ofstream 对象
ifstream sourceFileStream(sourceFile);
ofstream destinationFileStream(destinationFile);
// 从源文件读取并写入目标文件
if(sourceFileStream.is_open() && destinationFileStream.is_open()){
while(getline(sourceFileStream, line)){
destinationFileStream << line << "\n";
}
cout<<"Copy Finished"<<endl;
}
else{
printf("Cannot read File");
}
// 关闭文件
sourceFileStream.close();
destinationFileStream.close();
}
int main(){
string sourceFile = "original.txt";
string destinationFile = "copy.txt";
copyFile(sourceFile, destinationFile);
return 0;
}
总结
在本实验中,我们创建了一个应用程序,允许用户使用 C++ 语言中的文件处理方法将一个文件的内容复制到另一个文件中。



