受保护的虚函数
<sstream>

std::basic_stringbuf::seekoff

pos_type seekoff (off_type off, ios_base::seekdir way,                  ios_base::openmode which = ios_base::in | ios_base::out);
将位置指针设置到相对位置
为参数 which 指定的位置指针设置新位置。此位置是根据 way 指定的起点计算的 off 个字符的偏移量。

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

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

参数

off
偏移量,相对于 way 参数。
成员类型 off_type 由 *字符特性* 确定:通常,它是已签名整型 streamoff 的别名。
way
类型为 ios_base::seekdir 的对象,指示偏移量应用的来源。它可以取以下任意常量值:
偏移量相对于...
ios_base::beg字符序列的开头
ios_base::cur根据参数 which,*读取指针*(gptr)或*写入指针*(pptr)的当前位置。
ios_base::end字符序列的末尾
which
确定受影响的是*位置指针*中的哪个:*输入序列*、*输出序列*或两者都受影响。它是类型为 ios_base::openmode 的对象,对于此函数,它可以取以下任意重要的常量值组合:
受影响的位置指针
ios_base::in修改*读取指针*(gptr
ios_base::out修改*写入指针*(pptr
两个指针可以同时被选择,但如果两者都被选择且 wayios_base::cur,则函数会失败。

返回值

成功时,如果在成员类型 pos_type 中可表示,则返回调用后位置指针指向的新绝对位置。
失败时,或者上述情况不可能时,函数返回 pos_type(off_type(-1))
成员类型 pos_type 由*字符特性*决定:通常,它是一个 fpos 类型(例如 streampos),可以与整数类型相互转换。

数据竞争

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

异常安全

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

另见