温馨提示×

C++ fseek 如何处理大文件

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

在C++中,可以使用fseek函数来移动文件指针,从而实现对大文件的处理。fseek函数的原型如下:

int fseek(FILE *stream, long int offset, int origin);

其中,stream是指向文件的指针,offset是偏移量,origin是起始位置。origin可以取以下几种值:

  • SEEK_SET:从文件开头开始偏移
  • SEEK_CUR:从当前位置开始偏移
  • SEEK_END:从文件末尾开始偏移

以下是一个示例代码,演示如何使用fseek函数处理大文件:

#include <iostream>
#include <cstdio>

int main() {
    FILE *file = fopen("large_file.txt", "r");
    if (file == NULL) {
        std::cerr << "Error opening file" << std::endl;
        return 1;
    }

    fseek(file, 0, SEEK_END); // 移动文件指针到文件末尾

    long size = ftell(file); // 获取文件大小
    std::cout << "File size: " << size << " bytes" << std::endl;

    fclose(file);
    return 0;
}

以上代码首先打开一个名为large_file.txt的文件,并将文件指针移动到文件末尾,然后通过ftell函数获取文件大小并输出。这样就可以处理大文件了。

0