C++ 文件内容复制

C++C++Beginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

在本实验中,我们将学习如何使用 C++ 语言中的文件处理功能将一个文件的内容复制到另一个文件中。

包含头文件和命名空间

在第一步中,我们将包含必要的头文件和命名空间,以便继续编写代码。

#include <iostream>
#include <fstream>

using namespace std;

将一个文件复制到另一个文件

在这一步中,我们将执行以下操作:

  1. 创建 ifstreamofstream 类的对象。
  2. 检查它们是否连接到各自的文件。如果是,则继续;否则,请再次检查文件名。使用 getline() 方法读取源文件的内容,并使用 << 运算符将其写入目标文件(即将每一行从 ifstream 对象复制到 ofstream 对象)。
  3. 复制完成后,使用 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++ 语言中的文件处理方法将一个文件的内容复制到另一个文件中。