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
函数将读取位置移动到文件开头、当前位置和文件末尾。最后,我们逐行读取文件内容并输出到控制台。