命名空间
变体
操作

std::basic_spanbuf<CharT,Traits>::seekoff

来自 cppreference.cn
< cpp‎ | io‎ | basic spanbuf
protected:

pos_type seekoff( off_type off, std::ios_base::seekdir dir,
                  std::ios_base::openmode which =

                      std::ios_base::in | std::ios_base::out ) override;
(since C++23)

如果可能,将get和/或put区域的下一个指针重定位到与缓冲区get和/或put区域的起始位置、结束位置或当前位置偏移 off 个字符的位置。

n 为底层缓冲区中 CharT 元素的数量,或者在没有底层缓冲区时为 0,如果发生以下情况,此函数将失败:

  • 要重定位的get和/或put区域的下一个指针为空,并且计算出的 newoff (见下文) 不为零,这可能发生在没有底层缓冲区时,或者 *this 没有以 which 要求的模式打开,或者
  • dirstd::ios_base::curstd::ios_base::instd::ios_base::out 都设置在 which 中,或者
  • 计算出的 newoff 不能用 off_type 表示,小于零,或大于 n

newoff 的计算如下

如果 std::ios_base::in 和/或 std::ios_base::outwhich 中相应地设置,此函数成功时将 get 和/或 put 区域的下一个指针重定位到 pbuf + newoff,其中 pbuf 是指向底层缓冲区开头的指针,或者在没有底层缓冲区时为空指针值。

内容

[编辑] 参数

off - 设置下一个指针的相对位置
dir - 定义应用相对偏移量的基准位置。它可以是以下常量之一
常量 解释
beg 流的开始
end 流的结束
cur 流位置指示器的当前位置
which - 定义输入序列、输出序列或两者是否受影响。它可以是以下常量之一或组合
常量 解释
in 影响输入序列
out 影响输出序列

[编辑] 返回值

pos_type(newoff) 成功时返回 pos_type(newoff),失败时返回 pos_type(off_type(-1))

[编辑] 示例

[编辑] 参见

[虚函数]
使用相对寻址重定位输入序列、输出序列或两者的下一个指针
(std::basic_stringbuf<CharT,Traits,Allocator> 的虚保护成员函数) [编辑]
[虚函数]
使用相对寻址重定位输入序列、输出序列或两者的下一个指针
(std::strstreambuf 的虚保护成员函数) [编辑]