受保護的虛成員函式
<fstream>

std::basic_filebuf::pbackfail

int_type pbackfail (int_type c = traits_type::eof());
在下溢時將字元放回
將當前輸入位置向前移動一個字元,並在支援的情況下,將 c 作為下一個要讀取的字元提供。

如果實現不支援寫入回退位置,則 c 必須匹配回退位置的字元,或者為檔案尾值 (traits_type::eof())。否則,該函式將失敗。該函式使用 traits_type::eq 進行比較,並在需要時使用 traits_type::to_char_type 轉換 c

如果在呼叫之前 get 指標 (gptr) 位於字元序列的開頭,則函式可能會失敗,或者根據庫實現提供額外的回退位置併成功。

在任何情況下,函式都不會修改關聯檔案的內容。

失敗時,函式將返回檔案尾值 (traits_type::eof()),而不會更改get 指標 (gptr)。

get 指標 (gptr) 處沒有可用的回退位置時,或者要放回的字元與緩衝區中的字元不匹配時,basic_streambuf 的公共成員函式(如 sungetcsputbackc)會呼叫此虛擬函式。

此成員函式重寫了繼承的虛成員 basic_streambuf::pbackfail

引數

c
要放回的字元,或者*檔案結束符*值(traits_type::eof()),用於保留回退位置的字元值。
成員型別int_type是能夠表示任何字元值或特殊*檔案結束*符的整型。

返回值

成功時,返回traits_type::not_eof(c)
如果失敗,該函式返回*檔案結束符*值(traits_type::eof())。
成員型別int_type是能夠表示任何字元值或特殊*檔案結束*符的整型。

資料競爭

修改 basic_filebuf 物件。
同時訪問同一個檔案流緩衝區物件可能導致資料爭用。

異常安全

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

另見