seekg
是 C++ 文件流庫 <fstream>
中的一個成員函數,用于設置文件讀取位置
以下是一個簡單的示例,展示了如何使用 seekg
與緩沖區配合:
#include <iostream>
#include <fstream>
#include <vector>
int main() {
// 打開一個文件用于讀取
std::ifstream file("example.txt", std::ios::binary);
if (!file) {
std::cerr << "Error opening file" << std::endl;
return 1;
}
// 設置緩沖區大小
const size_t buffer_size = 4096;
std::vector<char> buffer(buffer_size);
// 將文件指針移動到指定位置
file.seekg(10, std::ios::beg);
// 讀取緩沖區內的數據
while (file.read(buffer.data(), buffer_size)) {
// 處理緩沖區內的數據,例如打印
std::cout.write(buffer.data(), file.gcount());
}
// 關閉文件
file.close();
return 0;
}
在這個示例中,我們首先打開一個名為 “example.txt” 的文件用于讀取。然后,我們創建了一個大小為 4096 字節的緩沖區,并使用 seekg
將文件指針移動到距離文件開頭 10 個字節的位置。接下來,我們使用 read
函數從當前文件指針位置開始讀取緩沖區內的數據,并將其打印到標準輸出。最后,我們關閉文件。