温馨提示×

C++ fseek 实现文件复制方法

c++
小樊
84
2024-07-15 17:37:36
栏目: 编程语言

#include <iostream>
#include <fstream>

int main() {
    std::ifstream inputFile("input.txt", std::ios::binary);
    std::ofstream outputFile("output.txt", std::ios::binary);

    if (!inputFile.is_open() || !outputFile.is_open()) {
        std::cout << "Error opening files!" << std::endl;
        return 1;
    }

    inputFile.seekg(0, std::ios::end);
    std::streampos fileSize = inputFile.tellg();
    inputFile.seekg(0, std::ios::beg);

    char* fileBuffer = new char[fileSize];

    inputFile.read(fileBuffer, fileSize);
    outputFile.write(fileBuffer, fileSize);

    delete[] fileBuffer;

    inputFile.close();
    outputFile.close();

    std::cout << "File copied successfully!" << std::endl;

    return 0;
}

这段代码打开了一个输入文件input.txt和一个输出文件output.txt,并使用fseek实现了文件复制的功能。首先获取输入文件的大小,然后创建一个大小相同的缓冲区,将输入文件中的内容读取到缓冲区中,最后将缓冲区中的内容写入到输出文件中。最后关闭输入文件和输出文件,并输出复制成功的消息。

0