受保護的虛成員函式
<streambuf> <iostream>

std::basic_streambuf::pbackfail

int_type pbackfail (int_type c = traits_type::eof());
將字元放回輸入流(在下溢時)
由其他成員函式呼叫,用於將字元放回*受控輸入序列*並減少位置指示器。

它僅在*讀取指標*(gptr)沒有可用的回退位置,或者要放回的字元與緩衝區中的字元不匹配時被呼叫(公共成員函式sungetcsputbackc會這樣做)。

basic_streambuf中的預設行為是始終返回traits_type::eof()(表示失敗),但派生類可以覆蓋此行為來修改緩衝區或gptregptr內部指標以適應回退請求(如果支援)。basic_filebufbasic_stringbuf都會覆蓋此虛成員函式(請參見basic_filebuf::pbackfailbasic_stringbuf::pbackfail)。

引數

c
要放回的字元,或者*檔案結束符*值(traits_type::eof()),用於保留回退位置的字元值。
如果函式成功並且c與該位置的字元不匹配,則*受控輸入序列*的內容是否被修改是未指定的。
成員型別int_type是一個整型,能夠表示任何字元值或特殊的*檔案結束符*值。

返回值

成功時,透過成員traits_type::to_int_type轉換到int_type型別的值,即放回的字元的值。
如果失敗,該函式返回*檔案結束符*值(traits_type::eof())。
成員型別int_type是一個整型,能夠表示任何字元值或特殊的*檔案結束符*值。

資料競爭

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

異常安全

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

另見