CppDS.com

C++ 98 11 14 17 20 手册

std::basic_streambuf<CharT,Traits>::pbackfail

来自cppreference.com
< cpp‎ | io‎ | basic streambuf
 
 
 
 
protected:
virtual int_type pbackfail( int_type c = Traits::eof() );

在下列情况之一时,此受保护虚函数为公开成员函数 sungetc()sputbackc() 所调用(它们继而为 basic_istream::ungetbasic_istream::putback 所调用):

1) 获取区中无回放位置(以无参数调用 pbackfail() )。此情形中, pbackfail() 的目的是令获取区后备一个字符,若关联字符序列允许(例如文件支持的 streambuf 可以在提前一个字符的位置,从文件重新加载缓冲区)。
2) 调用方试图回放异于先前取得字符的另一字符(以需要回放的字符调用 pbackfail() )。此情形中, pbackfail() 的目的是将字符 c 置于获取区中刚好前于 basic_streambuf::gptr() 的位置,以及若可能则修改关联字符序列以反映此更改。这可能涉及如在第一变体中一般的后备获取区。

此函数的默认基类版本不做任何事并于所有情形返回 Traits::eof() 。导出类覆写此函数: basic_stringbuf::pbackfailbasic_filebuf::pbackfailstrstreambuf::pbackfail ,而且期待用户定义和第三方库流类也覆写此函数。

参数

ch - 要回放的字符,或若只请求放弃则为 Traits::eof()

返回值

失败情况下为 Traits::eof() ,某个不同值指示成功。基类版本始终失败。

示例

参阅

回退输出序列以放回字符,不影响关联文件
(std::basic_filebuf<CharT,Traits> 的虚受保护成员函数)
回放字符到输出序列中
(std::basic_stringbuf<CharT,Traits,Allocator> 的虚受保护成员函数)
回退输入序列以反获取一个字符
(std::strstreambuf 的虚受保护成员函数)
回移一位输出序列中的下一位置指针
(公开成员函数)
在输入序列中放回一个字符
(公开成员函数)
关闭