c++

c++ seekg怎样实现精准定位

小樊
88
2024-11-26 12:57:20
栏目: 编程语言

在C++中,seekg函数是用于在输入流中设置读取位置的。要实现精准定位,你需要传递一个偏移量和参考位置作为参数。偏移量表示从参考位置开始的字节数,参考位置可以是std::ios::beg(从文件开始处计算偏移量)、std::ios::cur(从当前位置计算偏移量)或std::ios::end(从文件末尾计算偏移量)。

以下是一个使用seekg实现精准定位的示例:

#include <iostream>
#include <fstream>

int main() {
    std::ifstream file("example.txt", std::ios::binary);

    if (!file) {
        std::cerr << "Error opening file" << std::endl;
        return 1;
    }

    // 将文件指针移动到第5个字节
    file.seekg(4, std::ios::beg);

    // 检查文件指针是否成功移动
    if (file.fail()) {
        std::cerr << "Error seeking file" << std::endl;
        return 1;
    }

    // 读取当前位置的字符
    char ch;
    file.get(ch);
    std::cout << "Character at position 5: " << ch << std::endl;

    // 关闭文件
    file.close();

    return 0;
}

在这个示例中,我们首先打开一个名为example.txt的文件。然后,我们使用seekg函数将文件指针移动到第5个字节(偏移量为4,参考位置为std::ios::beg)。接下来,我们读取当前位置的字符并将其输出到控制台。最后,我们关闭文件。

0
看了该问题的人还看了