温馨提示×

C++ fseek 和ftell配合技巧

c++
小樊
96
2024-07-15 17:34:44
栏目: 编程语言

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

#include <iostream>
#include <fstream>

int main() {
    std::ifstream inputFile("input.txt", std::ios::binary);
    
    if (!inputFile.is_open()) {
        std::cerr << "Error opening input file." << std::endl;
        return 1;
    }
    
    // 获取文件大小
    inputFile.seekg(0, std::ios::end);
    int fileSize = inputFile.tellg();
    inputFile.seekg(0, std::ios::beg);
    
    // 读取文件内容
    char* buffer = new char[fileSize];
    inputFile.read(buffer, fileSize);
    
    // 输出文件内容
    std::cout.write(buffer, fileSize);
    
    delete[] buffer;
    inputFile.close();
    
    return 0;
}

在上面的示例中,首先打开一个二进制文件并通过seekg函数定位到文件末尾,然后通过tellg函数获取文件大小,再通过seekg函数回到文件开头。接着根据文件大小来动态分配一个char数组,使用read函数读取文件内容到数组中,最后使用write函数输出文件内容。最后别忘了关闭文件和释放内存。

通过这种方式,可以实现对文件的读取和写入操作,并且利用fseek和ftell函数可以更灵活地控制文件指针的位置。

0