protected virtual member function
<streambuf> <iostream>

std::streambuf::seekpos

streampos seekpos (streampos sp, ios_base::openmode which = ios_base::in | ios_base::out);
将内部位置指针设置为绝对位置
由公共成员函数 pubseekpos 调用,用于以一种派生类特定的方式更改受控序列的一个或多个流位置的虚函数。

streambuf 中的默认行为是不执行任何操作并返回 -1,但派生类应覆盖此行为以适当地更改内部指针:filebufstringbuf 都覆盖此虚成员函数以将 which 指定的内部指针设置为绝对位置 pos

参数

pos
位置指针的新绝对位置。
streampos 是一种定位类型,可以转换为/从整数类型转换(一个 fpos 类型)。
which
通常用于确定哪个 *受控序列* 将被修改:*输入序列*、*输出序列* 或两者。它是一个 ios_base::openmode 类型的对象,对于此函数,它可以包含以下任意组合的有效常量值:
受影响的位置指针
ios_base::in修改 *受控输入序列* 中的当前位置
ios_base::out修改 *受控输出序列* 中的当前位置

返回值

返回 pos_type(off_type(-1))
streampos 是一种定位类型,可以转换为/从整数类型转换(一个 fpos 类型)。

数据竞争

不引入数据竞争,但派生类中重写的版本可能会。

异常安全

无异常保证:此默认定义从不抛出异常。

另见