C++中如何讀取位于不同位置的文件數(shù)據(jù)

c++
小億
103
2024-04-15 18:15:10

在C++中,可以使用ifstream類(lèi)來(lái)讀取文件數(shù)據(jù)。要讀取位于不同位置的文件數(shù)據(jù),可以使用seekg函數(shù)來(lái)設(shè)置文件指針的位置,然后再使用read函數(shù)來(lái)讀取數(shù)據(jù)。

以下是一個(gè)示例代碼,演示了如何讀取位于不同位置的文件數(shù)據(jù):

#include <iostream>
#include <fstream>

int main() {
    std::ifstream file("data.txt", std::ios::binary); // 打開(kāi)文件data.txt,并以二進(jìn)制模式讀取

    if(!file.is_open()) {
        std::cout << "Failed to open file." << std::endl;
        return 1;
    }

    // 將文件指針設(shè)置到第10個(gè)字節(jié)的位置
    file.seekg(10);

    char data[100];
    file.read(data, 100); // 從當(dāng)前位置讀取100個(gè)字節(jié)的數(shù)據(jù)

    // 輸出讀取到的數(shù)據(jù)
    for(int i = 0; i < file.gcount(); i++) {
        std::cout << data[i];
    }

    // 將文件指針設(shè)置到第50個(gè)字節(jié)的位置
    file.seekg(50);

    file.read(data, 100); // 從當(dāng)前位置讀取100個(gè)字節(jié)的數(shù)據(jù)

    // 輸出讀取到的數(shù)據(jù)
    for(int i = 0; i < file.gcount(); i++) {
        std::cout << data[i];
    }

    file.close(); // 關(guān)閉文件

    return 0;
}

在上面的示例代碼中,首先打開(kāi)文件data.txt,然后使用seekg函數(shù)將文件指針?lè)謩e設(shè)置到第10個(gè)字節(jié)和第50個(gè)字節(jié)的位置,最后使用read函數(shù)分別讀取100個(gè)字節(jié)的數(shù)據(jù),并將數(shù)據(jù)輸出到控制臺(tái)。

0