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

std::filebuf::underflow

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

在此之前,此函数会尝试从关联的文件读取字符,并且(如果对象持有中间缓冲区)通过修改内部输入缓冲区指针(gptregptreback)来使其可用。

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

此虚拟成员函数重写了继承的成员 streambuf::underflow。当获取指针gptr)没有可用读取位置时,像 sgetc 这样的成员会调用它来请求新字符。

此成员函数与 uflow 的行为类似,但输入位置不移动。

参数



返回值

受控输入序列中当前位置的字符,转换为 int 类型的值。
如果受控输入序列中没有更多可读字符,则返回文件结束值(EOF)。

数据竞争

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

异常安全

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

另见