protected virtual member function
<fstream>

std::basic_filebuf::underflow

int_type underflow();
在下溢时获取字符
返回当前输入位置的字符,而不移动输入位置指针。

在此之前,此函数会尝试从关联的文件中读取字符,并(如果对象维护着一个中间缓冲区)通过修改内部输入缓冲区指针(gptregptreback)来提供这些字符。

如果没有更多可用字符,并且函数未能从关联文件中读取更多字符,则它会返回文件结束值(traits_type::eof()),表示失败。

此虚成员函数重写了继承自 basic_streambuf::underflow 的成员,后者在读指针gptr)没有可用读取位置时,会被诸如 sgetc 等成员调用以请求新字符。

此成员函数的功能类似于 uflow,不同之处在于输入位置不会被移动。

参数



返回值

受控输入序列当前位置的字符,使用成员 traits_type::to_int_type 转换为 int_type 类型的值。
如果受控输入序列中没有更多字符可读,则返回文件结束值(traits_type::eof())。
成员类型int_type是能够表示任何字符值或特殊*文件结束*符的整型。

数据竞争

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

异常安全

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

另见