basic_istream::seekg
移动到流中读取的位置。
basic_istream<Elem, Tr>& seekg(
pos_type pos
);
basic_istream<Elem, Tr>& seekg(
off_type off,
ios_base::seekdir way
);
参数
pos
的绝对位置移动读取的指针。off
移动读取的指针的偏移量相对于 way。way
之一 ios_base::seekdir 枚举。
返回值
流(*this)。
备注
第一个成员函数执行绝对定位,函数执行相对定位的第二个成员。
备注
因为标准C++不支持在文本文件中,的相对定位不要使用与文本文件的第二个成员函数。
如果 fail 为假,第一个成员函数调用 newpos = rdbuf -> pubseekpos(pos),对于某些 pos_type 临时对象 newpos。 如果 fail 是错误的,第二个函数调用 newpos = rdbuf - > pubseekoff(off,way)。 在任何情况下,;如果(off_type)newpos == (off_type) (- 1) (确定的操作失败),函数调用 istr。setstate(failbit)。 两个函数返回 *this。
如果 失败 为true,成员函数不执行任何操作。
示例
// basic_istream_seekg.cpp
// compile with: /EHsc
#include <iostream>
#include <fstream>
int main ( )
{
using namespace std;
ifstream file;
char c, c1;
file.open( "basic_istream_seekg.txt" );
file.seekg(2); // seek to position 2
file >> c;
cout << c << endl;
}
输入:basic_istream_seekg.txt
0123456789
Output
2
要求
标头: <istream>
命名空间: std