温馨提示×

c++ seekg在C++ STL中的作用

c++
小樊
81
2024-11-26 13:10:22
栏目: 编程语言

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

0