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 个字节、移动到文件末尾、获取文件大小、移回文件开头并读取整个文件内容。最后,我们关闭文件。