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

std::stringbuf::seekpos

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

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

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

参数

pos
位置指针的新绝对位置。
streampos 是一种定位类型,可以转换为/从整数类型转换(一个 fpos 类型)。
which
确定受影响的位置指针读取指针写入指针,或两者。它是一个 ios_base::openmode 类型的对象,对于此函数,它可以接受以下重要常量值的任何组合:
受影响的位置指针
ios_base::in修改读取指针gptr
ios_base::out修改写入指针pptr
可以同时选择两个指针。

返回值

成功时,返回 pos
失败时,函数返回 streampos(streamoff(-1))
streampos 是一种定位类型,可以转换为/从整数类型转换(一个 fpos 类型)。

数据竞争

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

异常安全

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

另见