std::basic_filebuf<CharT,Traits>::pbackfail
< cpp | io | basic filebuf
protected: virtual int_type pbackfail( int_type c = Traits::eof() ) |
||
此受保护虚函数为公开函数 basic_streambuf::sungetc 和 basic_streambuf::sputbackc 所调用(继而为 basic_istream::unget 和 basic_istream::putback 所调用)。
1) 调用方请求将获取区后备一个字符(以无参数调用
pbackfail()
),该情况下,此函数于前一字节位置开始重读文件,并自减 basic_streambuf::gptr() ,例如通过调用 gbump(-1) 。2) 调用方试图回放异于之前取得的字符(以需要放回的字符调用
pbackfail()
),该情况下a) 首先检查是否有回放位置,若无则通过于前一字节位置开始重读文件,后备获取区。
a) 然后检查什么字符在回放位置。若其处保有的字符已等于
c
,以 Traits::eq(to_char_type(c), gptr()[-1]) 确定,则简单地自减 basic_streambuf::gptr() 。此函数决不修改文件,仅修改内存中缓冲区的获取区。
若文件未打开( is_open()==false ),则此函数立即返回 Traits::eof() 。
参数
c | - | 要放回的字符,或为指示请求后备缓冲区的 Traits::eof() |
返回值
成功时为 c ,除非 c
为 Traits::eof() ,该情况下返回 Traits::not_eof(c) 。
失败时为 Traits::eof() 。
示例
本节未完成 原因:暂无示例 |
参阅
[虚] |
将字符放回输入序列,可能修改输入序列 ( std::basic_streambuf<CharT,Traits> 的虚受保护成员函数) |
回移一位输出序列中的下一位置指针 ( std::basic_streambuf<CharT,Traits> 的公开成员函数) | |
在输入序列中放回一个字符 ( std::basic_streambuf<CharT,Traits> 的公开成员函数) | |
撤销流中刚取走(移除,类似指针向后退回一个位置)的字符 ( std::basic_istream<CharT,Traits> 的公开成员函数) | |
往输入流中退回一个字符 ( std::basic_istream<CharT,Traits> 的公开成员函数) |