受保护的虚成员函数
<streambuf> <iostream>

std::streambuf::uflow

int uflow();
在下溢时获取字符并前进位置
此虚函数由其他成员函数调用,用于获取受控输入序列中的当前字符,然后将位置指示器前进到下一个字符。

读取指针gptr)没有可用读取位置时,它会被 sbumpc 等公共成员函数调用,以请求一个新字符。

streambuf 中的默认行为是调用成员函数 underflow,在成功时返回相同的值,但将位置指示器前进到受控输入序列中的下一个字符。派生类可以根据需要重写此行为以实现不同的行为。

streambuf 中的行为与以下实现相同:
1
2
3
4
5
int uflow() {
  if ( underflow() == EOF ) return EOF;
  gbump(1);
  return gptr()[-1];
}

参数



返回值

如果调用 underflow 返回 EOF,则此函数返回相同的值。
否则,它返回受控输入序列中当前位置的字符,类型为 int
成员类型int_type是能够表示任何字符值或特殊*文件结束*符的整型。

数据竞争

修改*流缓冲区*对象。
同时访问同一*流缓冲区*对象可能会导致数据竞争。

异常安全

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

另见