受保护的虚拟成员函数
<sstream>

std::basic_stringbuf::seekpos

pos_type seekpos (pos_type pos, ios_base::openmode which = ios_base::in | ios_base::out);
将位置指针设置为绝对位置
将由参数 which 指定的位置指针设置为新的绝对位置 pos

如果 which 包含 ios_base::in,则会影响读指针gptr),如果 which 包含 ios_base::out,则会影响写指针pptr)。一次调用可以同时影响两个位置指针。

此虚拟函数由公共成员 basic_streambuf::pubseekpos 调用。

参数

pos
位置指针的新绝对位置。
pos_type 成员类型由字符特性确定:通常,它是可以与整数类型相互转换的 fpos 类型(例如 streampos)。
which
确定受影响的位置指针:读指针、写指针或两者。它是 ios_base::openmode 类型的对象,对于此函数,它可以接受以下有效常量值的任何组合:
受影响的位置指针
ios_base::in修改读指针gptr
ios_base::out修改写指针pptr
可以同时选择两个指针。

返回值

成功时,返回 pos
失败时,函数返回 pos_type(off_type(-1))
pos_type 成员类型由字符特性确定:通常,它是可以与整数类型相互转换的 fpos 类型(例如 streampos)。

数据竞争

修改 basic_stringbuf 对象。
并发访问同一对象可能导致数据争用。

异常安全

基本保证:如果抛出异常,对象处于有效状态。

另见