seekg
是 C++ 中 ifstream
類的一個成員函數,用于在輸入流中設置讀取位置。當處理二進制文件時,可以使用 seekg
函數來定位文件中的特定位置,以便讀取或寫入數據。
以下是一個簡單的示例,展示了如何使用 seekg
處理二進制文件:
#include <iostream>
#include <fstream>
int main() {
// 打開一個二進制文件,例如 "example.bin"
std::ifstream file("example.bin", std::ios::binary);
if (!file) {
std::cerr << "無法打開文件" << std::endl;
return 1;
}
// 將文件指針移動到文件開頭
file.seekg(0, std::ios::beg);
// 讀取文件的前 10 個字節
char buffer[10];
file.read(buffer, 10);
// 將文件指針移動到文件末尾
file.seekg(0, std::ios::end);
// 獲取文件大小
std::streamsize fileSize = file.tellg();
// 將文件指針移回文件開頭
file.seekg(0, std::ios::beg);
// 讀取整個文件內容到緩沖區
std::vector<char> fileContent(fileSize);
file.read(fileContent.data(), fileSize);
// 關閉文件
file.close();
// 處理文件內容...
return 0;
}
在這個示例中,我們首先打開一個名為 “example.bin” 的二進制文件。然后,我們使用 seekg
函數將文件指針移動到文件開頭、讀取前 10 個字節、移動到文件末尾、獲取文件大小、移回文件開頭并讀取整個文件內容。最后,我們關閉文件。