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
函数从当前文件指针位置开始读取缓冲区内的数据,并将其打印到标准输出。最后,我们关闭文件。