温馨提示×

c++ seekg在文件操作中的作用

c++
小樊
84
2024-11-26 12:58:20
栏目: 编程语言

seekg 是 C++ 文件流库 <fstream> 中的一个成员函数,用于在输入文件(如 ifstream)中设置读取位置

seekg 函数的基本语法如下:

std::istream& seekg (std::streampos pos, std::ios_base::openmode which = std::ios_base::beg);

参数说明:

  • pos:要设置的新位置,可以是文件中的任何位置。
  • which:指定移动方式,可以是以下值之一:
    • 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");
    if (!file) {
        std::cerr << "Error opening file!" << std::endl;
        return 1;
    }

    // 将读取位置移动到文件开头
    file.seekg(0, std::ios_base::beg);

    std::string line;
    // 从当前位置开始读取文件内容
    while (std::getline(file, line)) {
        std::cout << line << std::endl;
    }

    // 将读取位置移动到文件末尾
    file.seekg(0, std::ios_base::end);

    // 将读取位置移回文件开头
    file.seekg(0, std::ios_base::beg);

    return 0;
}

在这个示例中,我们首先打开一个名为 “example.txt” 的文件,然后使用 seekg 函数将读取位置移动到文件开头、当前位置和文件末尾。最后,我们逐行读取文件内容并输出到控制台。

0