std::basic_stringbuf<CharT,Traits,Allocator>::pbackfail
從 cppreference.com
< cpp | io | basic stringbuf
protected: virtual int_type pbackfail( int_type c = Traits::eof() ) |
||
此受保護虛函數為公開函數 basic_streambuf::sungetc 和 basic_streambuf::sputbackc 所調用(轉而為 basic_istream::unget 和 basic_istream::putback 所調用)。
1) 調用方要求獲取區後備一個字符(以無實參或以 Traits::eof() 為實參調用
pbackfail()
)a) 首先,檢查是否有回放位置,而若確實無回放位置則失敗( stringbuf 無重讀用的外部字符序列)
2) 調用方試圖回放的字符異於之前取得者(以要需要放回的字符調用
pbackfail()
),該情況下a) 首先,檢查是否有回放位置,若無則失敗。
b) 然後檢查會放位置中有什麼字符。若其處保有的字符已等於
c
,以 Traits::eq(to_char_type(c), gptr()[-1]) 確定,則簡單地自減 basic_streambuf::gptr()。c) 否則,若緩衝區僅為讀取打開,則失敗。
d) 否則,若緩衝區為寫入打開( mode && std::ios_base::out 非零),則自減 basic_streambuf::gptr() 並寫入
c
到調整後的 gptr() 所指向的位置。目錄 |
[編輯] 參數
c | - | 要返回的字符,或若要求指示獲取區的後備則為 Traits::eof() |
[編輯] 返回值
成功時為 c,除非 c
為 Traits::eof(),該情況下返回 Traits::not_eof(c)。
失敗時為 Traits::eof()。
[編輯] 示例
本節未完成 原因:暫無示例 |
[編輯] 參閱
[虛] |
將字符放回輸入序列,可能修改輸入序列 ( std::basic_streambuf<CharT,Traits> 的虛受保護成員函數)
|
回移一位輸出序列中的下一位置指針 ( std::basic_streambuf<CharT,Traits> 的公開成員函數)
| |
在輸入序列中放回一個字符 ( std::basic_streambuf<CharT,Traits> 的公開成員函數)
| |
撤銷上一個字符的提取 ( std::basic_istream<CharT,Traits> 的公開成員函數)
| |
往輸入流中放置一個字符 ( std::basic_istream<CharT,Traits> 的公開成員函數)
|