protected virtual member function
<sstream>

std::stringbuf::seekoff

streampos seekoff (streamoff off, ios_base::seekdir way,                  ios_base::openmode which = ios_base::in | ios_base::out);
将位置指针设置为相对位置
设置一个新位置给由参数 which 指定的位置指针。此位置是相对于 way 指定的原点计算的 off 个字符的偏移量。

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

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

参数

off
偏移量,相对于 way 参数。
streamoff 是一个有符号整数类型。
way
类型为 ios_base::seekdir 的对象,指示偏移量应用的来源。它可以取以下任意常量值:
偏移量相对于...
ios_base::beg字符序列的开头
ios_base::curget指针gptr)或put指针pptr)的当前位置,具体取决于参数 which
ios_base::end字符序列的结尾
which
确定受影响的位置指针输入序列输出序列或两者。它是 ios_base::openmode 类型的对象,对于此函数,它可以接受以下任意组合的有效常量值
受影响的位置指针
ios_base::in修改get指针gptr
ios_base::out修改put指针pptr
两个指针可以同时选择,但如果当 wayios_base::cur 时同时选择了两者,则函数会失败。

返回值

成功时,如果可以表示为 streampos 类型的值,则返回调用后位置指针指向的新绝对位置。
失败时,或者如果上述操作不可能,则函数返回 streampos(streamoff(-1))
streampos 是一种定位类型,可以转换为/从整数类型转换(一个 fpos 类型)。

数据竞争

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

异常安全

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

另见