117.info
人生若只如初见

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

#include 
#include 

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实现了文件复制的功能。首先获取输入文件的大小,然后创建一个大小相同的缓冲区,将输入文件中的内容读取到缓冲区中,最后将缓冲区中的内容写入到输出文件中。最后关闭输入文件和输出文件,并输出复制成功的消息。

未经允许不得转载 » 本文链接:https://www.117.info/ask/fe600AzsIAwBRA1E.html

推荐文章

  • C++ strtol使用时常见的错误有哪些

    未正确包含头文件:未包含stdlib.h头文件,导致编译错误。
    传入参数错误:传入的字符串参数不符合数字格式,导致无法转换。
    数字超出范围:转换后的数...

  • C++ strtol与strtoul有何不同

    C++中的strtol和strtoul函数都用于将字符串转换为长整型或无符号长整型,但它们之间有一些重要的区别: strtol函数将字符串转换为长整型(即有符号长整型),并且...

  • C++ strtol能否解析十六进制数

    是的,C++中的strtol函数可以解析十六进制数。当在第三个参数中设置基数为16时,strtol函数会将输入的字符串解析为十六进制数。例如:
    #include #include i...

  • 为什么C++ strtol比atoi效率高

    C++中的strtol函数比atoi函数效率高的主要原因是strtol函数提供了更多的功能和灵活性。strtol函数可以处理更多类型的输入数据,例如十六进制或八进制的数字,同时...

  • C++ fseek 对性能影响如何

    在C++中,fseek函数用于移动文件指针到指定位置。在大多数情况下,fseek函数不会对性能产生显著影响,因为它只是简单地修改文件指针的位置。
    然而,在某些情...

  • C++ fseek 怎样实现随机访问

    在C++中,可以使用fseek函数来实现文件的随机访问。fseek函数可以将文件指针定位到文件中的任意位置,从而实现文件的随机访问。
    下面是一个简单的示例,演示...

  • C++ fseek 和ftell配合技巧

    在C++中,可以使用fseek和ftell函数来控制文件指针的位置和获取当前文件指针的位置。下面是一个简单的示例代码,演示了如何使用fseek和ftell函数来实现文件读写操...

  • C++ fseek 如何正确使用

    在 C++ 中,您可以使用 fseek 函数将文件指针移动到指定位置。以下是一些关键步骤来正确使用 fseek 函数: 包含头文件:首先,您需要包含 头文件以访问 fseek 函...