seekg
是 C++ 中 ifstream
類的一個成員函數,用于設置文件讀取位置
在 C++ STL(Standard Template Library)中,ifstream
是一個用于處理輸入文件的類,它繼承自 istream
類。seekg
函數是 ifstream
類的一個重要成員函數,它允許你在讀取文件時定位到指定的位置。這對于處理大文件或者需要隨機訪問文件內容的場景非常有用。
seekg
函數的原型如下:
std::streampos seekg (std::streampos off, std::ios_base::seekdir dir);
參數說明:
off
:要移動的位置偏移量,可以是正數(向右移動)或負數(向左移動)。dir
:指定移動方向的枚舉值,可以是 std::ios_base::beg
(從文件開頭開始計算偏移量)、std::ios_base::cur
(從當前位置開始計算偏移量)或 std::ios_base::end
(從文件末尾開始計算偏移量)。示例:
#include <iostream>
#include <fstream>
#include <string>
int main() {
std::ifstream file("example.txt", std::ios::in | std::ios::binary);
if (!file) {
std::cerr << "Error opening file" << std::endl;
return 1;
}
// 將文件指針移動到第 10 個字節
file.seekg(10, std::ios::beg);
// 讀取接下來的 5 個字節
char buffer[6];
file.read(buffer, 5);
// 關閉文件
file.close();
return 0;
}
在這個示例中,我們使用 seekg
函數將文件指針移動到第 10 個字節,然后讀取接下來的 5 個字節。