protected virtual member function
<fstream>
pos_type seekoff (off_type off, ios_base::seekdir way, ios_base::openmode which = ios_base::in | ios_base::out);
设置内部位置到相对位置
参数
- off
- 偏移量,相对于 way 参数。
如果流使用可变宽度或状态相关的 encoding,则 off 必须为零(否则函数将失败)。
成员类型 off_type 由 *字符特性* 确定:通常,它是已签名整型 streamoff 的别名。
- way
- 类型为 ios_base::seekdir 的对象,指示偏移量应用的来源。它可以取以下任意常量值:
值 | 偏移量相对于... |
ios_base::beg | 文件开头 |
ios_base::cur | 输入位置或输出位置的当前位置,具体取决于参数 which。
|
ios_base::end | 文件结尾 |
- which
- 确定受影响的是哪个内部位置指针:输入位置、输出位置或两者。它是一个 ios_base::openmode 类型的对象,对于此函数,它可以接受以下任意组合的有效常量值。
值 | 受影响的位置指针 |
ios_base::in | 修改输入位置及其相应的获取指针(gptr)。 |
ios_base::out | 修改输出位置及其相应的 put 指针(pptr)。 |
可以同时选择两个位置,但如果当 way 为 ios_base::cur 时同时选择两者,则函数将失败。
返回值
成功时,它返回调用后内部位置指针指向的新绝对位置(如果能表示为成员类型 pos_type 的值)。
失败时,或者无法做到上述情况时,该函数返回 pos_type(off_type(-1))
。
成员类型 pos_type 由字符特性确定:通常,它是一个 fpos 类型(例如 streampos),该类型可以转换为/从整数类型转换。
异常安全
基本保证:如果抛出异常,*文件流缓冲区*处于有效状态。