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

std::basic_streambuf::seekpos

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

basic_streambuf 中的默认行为是无操作并返回 -1,但派生类应重写此行为以适当地修改内部指针:basic_filebufbasic_stringbuf 都重写了此虚拟成员函数,以将由 which 指定的内部指针设置为绝对位置 pos

参数

pos
位置指针的新绝对位置。
成员类型 pos_type字符特性决定:通常,它是 fpos 类型(例如 streampos),可以与整型进行转换。
which
通常用于确定要修改的受控序列的位置:输入序列输出序列或两者。它是一个类型为 ios_base::openmode 的对象,对于此函数,它可以接受以下任何组合的显著常量值:
受影响的位置指针
ios_base::in修改 *受控输入序列* 中的当前位置
ios_base::out修改 *受控输出序列* 中的当前位置

返回值

返回 pos_type(off_type(-1))
成员类型 pos_type字符特性决定:通常,它是 fpos 类型(例如 streampos),可以与整型进行转换。

数据竞争

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

异常安全

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

另见