请注意,seekg()
函数是C++中的一个函数,而不是C语言中的函数。它用于设置输入流的读取位置。 函数原型:
streampos seekg(streampos pos); streampos seekg(streamoff off, ios_base::seekdir dir);
第一个原型将读取位置设置为给定的绝对位置。输入参数pos
是一个streampos
类型的对象,表示要设置的绝对位置。 第二个原型将读取位置设置为给定的相对位置。输入参数off
是要设置的相对位置的偏移量,而dir
是指定相对位置的方向的ios_base::seekdir
类型的对象。可以使用以下三个值之一:
ios_base::beg
:从文件开头开始ios_base::cur
:从当前位置开始ios_base::end
:从文件末尾开始seekg()
函数返回一个streampos
类型的对象,表示设置后的读取位置。如果设置失败,则返回-1
。 下面是一个示例代码,展示了如何使用seekg()
函数:
#include <iostream> #include <fstream> using namespace std; int main() { ifstream file("example.txt"); if (!file.is_open()) { cout << "Failed to open file!" << endl; return 1; } file.seekg(5); //设置读取位置为第6个字符 char c; file >> c; cout << "The 6th character is: " << c << endl; file.seekg(-5, ios_base::end); //设置读取位置为倒数第6个字符 file >> c; cout << "The last 6th character is: " << c << endl; file.close(); return 0; }
输出结果:
The 6th character is: e The last 6th character is: l
在此示例中,seekg()
函数用于设置读取位置,以便在文件中读取指定位置的字符。第一个seekg()
函数将读取位置设置为第6个字符,而第二个seekg()
函数将读取位置设置为倒数第6个字符。最终输出结果表明,这两个字符正是我们预期的字符。
评论