C++程序 将一个文件复制到另一个文件

C++程序 将一个文件复制到另一个文件

复制文件是我们编程中常常需要用到的操作,本文将介绍如何用C++语言将一个文件复制到另一个文件。

打开文件

在读写文件前需要打开文件。C++中用fstream库进行文件读写操作。使用fstream打开文件有两种方式:

  • 使用open()函数打开文件
  • 直接使用fstream类的构造函数打开文件

下面是两种方法的示例代码:

// 使用open()函数打开文件
#include <fstream>
#include <string>

int main() {
    std::string filename = "input.txt";
    std::ifstream fin;
    fin.open(filename, std::ios::in);

    // ...

    fin.close();    
    return 0;
}

// 直接使用构造函数打开文件
#include <fstream>
#include <string>

int main() {
    std::string filename = "output.txt";
    std::ofstream fout(filename, std::ios::out);

    // ...

    fout.close();
    return 0;
}

上述代码中,filename即为文件名。std::ios::in表示以只读模式打开文件,而std::ios::out则表示以只写模式打开文件。

读取和写入文件

打开文件后,就可进行读写操作了。因为我们要将一个文件复制到另一个文件,所以需要先从源文件中读取数据,然后写入到目标文件中。

读取文件可通过调用fstream类中的getline()函数来实现。getline()函数会读取一行数据并返回一个std::string类型的对象。如果需要一次性读取全部数据,也可使用read()函数。

写入文件可通过调用fstream类中的<<运算符来实现。<<运算符会把数据写入到目标文件中。

下面是实现文件复制的代码:

#include <fstream>
#include <string>

int main() {
    std::string source_filename = "input.txt";
    std::string target_filename = "output.txt";

    std::ifstream fin(source_filename, std::ios::in);
    std::ofstream fout(target_filename, std::ios::out);

    if (fin && fout) {
        std::string line;
        while (getline(fin, line)) {
            fout << line << std::endl;
        }
    }

    fin.close();
    fout.close();
    return 0;
}

上述代码中,我们先打开源文件和目标文件,然后进行文件复制操作。在复制文件时,我们使用了while循环来逐行读取源文件中的数据,并通过<<运算符将其写入到目标文件中。最后记得关闭文件。

完整代码

#include <fstream>
#include <string>

int main() {
    std::string source_filename = "input.txt";
    std::string target_filename = "output.txt";

    std::ifstream fin(source_filename, std::ios::in);
    std::ofstream fout(target_filename, std::ios::out);

    if (fin && fout) {
        std::string line;
        while (getline(fin, line)) {
            fout << line << std::endl;
        }
    }

    fin.close();
    fout.close();
    return 0;
}

结论

本文介绍了如何用C++语言将一个文件复制到另一个文件。通过本文所述的方法,我们可以在编程中灵活应对各种文件读写操作。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程

C++ 示例