受保護的虛成員函式
<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是能夠表示任何字元值或特殊*檔案結束*符的整型。

資料競爭

修改*流緩衝區*物件。
同時訪問同一*流緩衝區*物件可能會導致資料競爭。

異常安全

基本保證:如果丟擲異常,*流緩衝區*處於有效狀態。

另見