受保护的虚成员函数
<sstream>

std::stringbuf::pbackfail

int pbackfail (int c = EOF);
将字符放回
将 *get pointer*(gptr)向前移动一个位置,指向前一个字符,如果 stringbuf 对象是用 ios_base::out 构建的,则将 c 存储在该位置。

如果 stringbuf 对象不是用 ios_base::out 构建的,则 c 必须与推回位置的字符匹配,或者为 EOF。否则,函数将失败。

如果调用前 *get pointer* 已经位于字符序列的开头,函数也将失败。

失败时,函数将返回 EOF 且不改变 *get pointer*(gptr)。

当 *get pointer*(gptr)没有可用的推回位置时,或者要推回的字符与缓冲区中的字符不匹配时,此虚函数会被 streambuf 的公有成员函数(如 sungetcsputbackc)调用。

参数

c
要推回的字符,或 EOF 以保持推回位置字符的值。

返回值

成功时,返回traits_type::not_eof(c)
函数在失败时返回 EOF

数据竞争

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

异常安全

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

另见