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 个字节。