溫馨提示×

C++ fseek 如何處理大文件

c++
小樊
88
2024-07-15 17:41:36
欄目: 編程語言

在C++中,可以使用fseek函數(shù)來移動文件指針,從而實現(xiàn)對大文件的處理。fseek函數(shù)的原型如下:

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

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

  • SEEK_SET:從文件開頭開始偏移
  • SEEK_CUR:從當(dāng)前位置開始偏移
  • SEEK_END:從文件末尾開始偏移

以下是一個示例代碼,演示如何使用fseek函數(shù)處理大文件:

#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函數(shù)獲取文件大小并輸出。這樣就可以處理大文件了。

0