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

std::filebuf::pbackfail

int pbackfail (int c = EOF);
将字符放回到备份区,以处理下溢
将当前输入位置向后移动到前一个字符,并且,如果支持,将 c 作为下一个要读取的字符可用。

如果实现不支持写入回退位置,则 c 必须匹配回退位置的字符,或者为文件尾(end-of-file)值(EOF)。否则,该函数失败。

如果 get pointergptr)在调用前指向字符序列的开头,则函数可能根据库实现而失败,或者提供额外的回退位置并成功。

在该函数中,关联文件的内容绝不会被修改。

失败时,该函数返回文件尾(end-of-file)值(EOF),而不改变get pointergptr)。

get pointergptr)没有可用回退位置,或者要放回的字符与缓冲区中的字符不匹配时,由 streambuf 的公共成员函数(如 sungetcsputbackc)调用此虚函数。

此成员函数重写了继承的虚成员 streambuf::pbackfail

参数

c
要放回的字符,或者文件尾(end-of-file)值(EOF)以保持回退位置的字符值。

返回值

成功时,返回traits_type::not_eof(c)
失败时,该函数返回文件尾(end-of-file)值(EOF)。

数据竞争

修改 filebuf 对象。
同时访问同一个文件流缓冲区对象可能导致数据争用。

异常安全

基本保证:如果抛出异常,*文件流缓冲区*处于有效状态。

另见