命名空间
变体
操作

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

来自 cppreference.com
< 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;
(自 C++23)

如果可能,将下一个指向获取和/或放置区域的指针重新定位到与缓冲区的获取和/或放置区域的开头、结尾或当前位置的 off 个字符相对应的的位置。

n 为基础缓冲区中的 CharT 元素数量,或当没有基础缓冲区时为 0,如果:

  • 将要重新定位的指向获取和/或放置区域的下一个指针为空且计算的 newoff(见下文)不为零,这可能发生在没有基础缓冲区的情况下,或 *this 未以 which 所需的模式打开,或
  • dirstd::ios_base::curstd::ios_base::instd::ios_base::out 均在 which 中设置,或
  • 计算的 newoffoff_type 中无法表示,小于零或大于 n

newoff 的计算方式如下

此函数在成功的情况下将指向获取和/或放置区域的下一个指针重新定位到 pbuf + newoff,如果 std::ios_base::in 和/或 std::ios_base::out 对应地在 which 中设置,其中 pbuf 是指向基础缓冲区的开头的指针,如果没有基础缓冲区则为 null 指针值。

内容

[编辑] 参数

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

[编辑] 返回值

如果成功,则为 pos_type(newoff),如果失败,则为 pos_type(off_type(-1)).

[编辑] 示例

[编辑] 另请参阅

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