名稱空間
變體
操作

std::strstreambuf

來自 cppreference.com
< cpp‎ | io
定義於標頭檔案 <strstream>
class strstreambuf : public std::basic_streambuf<char>
(C++98 起棄用)
(C++26 中移除)

std::strstreambuf 是一個 std::basic_streambuf,其關聯字元序列是一個字元陣列,該陣列可以是常量(例如字串字面量)、可修改但非動態(例如棧分配的陣列),或動態的。如果是動態陣列,std::strstreambuf 可以在必要時重新分配陣列以適應輸出(例如透過呼叫 delete[]new[] 或使用者提供的函式)。

std::strstreambuf 的典型實現包含四個私有資料成員

1) 緩衝區狀態,一個位掩碼型別,可以表示“已分配”(解構函式將釋放)、“常量”(不允許輸出)、“動態”(輸出可能重新分配)或“凍結”(不允許釋放和重新分配)這四個值的任意組合
2) 已分配緩衝區大小(緩衝區的起始地址不需要特殊的資料成員,它可以儲存在繼承的指標 eback() 中)
3) 指向使用者提供的分配函式的指標
4) 指向使用者提供的釋放函式的指標。

目錄

[編輯] 注意

在對具有動態緩衝區的流呼叫 str() 後,需要呼叫 freeze(false),以允許 strstreambuf 解構函式在必要時釋放緩衝區。

strstreambuf 自 C++98 起已被廢棄,並自 C++26 起被移除。推薦的替代方案是 std::spanbuf(自 C++23 起)

[編輯] 成員函式

公開成員函式

構造一個 strstreambuf 物件
(public 成員函式) [編輯]
銷燬一個 strstreambuf 物件,可選地釋放字元陣列
(虛 public 成員函式) [編輯]
設定/清除緩衝區的凍結狀態
(public 成員函式) [編輯]
將緩衝區標記為凍結並返回輸入序列的起始指標
(public 成員函式) [編輯]
返回輸出序列中下一個指標減去起始指標的結果:已寫入字元的數量
(public 成員函式) [編輯]

受保護的成員函式

從輸入序列中讀取一個字元,但不推進下一個指標
(虛 protected 成員函式) [編輯]
將輸入序列回退以取消獲取一個字元
(虛 protected 成員函式) [編輯]
向輸出序列追加一個字元,如果緩衝區是動態且未凍結的,則可能重新分配或初始分配緩衝區
(虛 protected 成員函式) [編輯]
[虛]
嘗試用陣列替換受控字元序列
(虛 protected 成員函式) [編輯]
使用相對定址重新定位輸入序列、輸出序列或兩者的下一個指標
(虛 protected 成員函式) [編輯]
使用絕對定址重新定位輸入序列、輸出序列或兩者的下一個指標
(虛 protected 成員函式) [編輯]

繼承自 std::basic_streambuf

成員型別

成員型別 定義
char_type CharT[編輯]
traits_type Traits;如果 Traits::char_type 不是 CharT,則程式格式錯誤。[編輯]
int_type Traits::int_type[編輯]
pos_type Traits::pos_type[編輯]
off_type Traits::off_type[編輯]

成員函式

銷燬 basic_streambuf 物件
(std::basic_streambuf<CharT,Traits> 的虛 public 成員函式) [編輯]
區域設定
更改關聯的區域設定並呼叫 imbue()
(std::basic_streambuf<CharT,Traits> 的 public 成員函式) [編輯]
獲取關聯區域設定的副本
(std::basic_streambuf<CharT,Traits> 的 public 成員函式) [編輯]
定位
呼叫 setbuf()
(std::basic_streambuf<CharT,Traits> 的 public 成員函式) [編輯]
呼叫 seekoff()
(std::basic_streambuf<CharT,Traits> 的 public 成員函式) [編輯]
呼叫 seekpos()
(std::basic_streambuf<CharT,Traits> 的 public 成員函式) [編輯]
呼叫 sync()
(std::basic_streambuf<CharT,Traits> 的 public 成員函式) [編輯]
獲取區
獲取獲取區中立即可用的字元數
(std::basic_streambuf<CharT,Traits> 的 public 成員函式) [編輯]
推進輸入序列,然後讀取一個字元而不再次推進
(std::basic_streambuf<CharT,Traits> 的 public 成員函式) [編輯]
(C++17 中移除)
從輸入序列中讀取一個字元並推進序列
(std::basic_streambuf<CharT,Traits> 的 public 成員函式) [編輯]
從輸入序列中讀取一個字元而不推進序列
(std::basic_streambuf<CharT,Traits> 的 public 成員函式) [編輯]
呼叫 xsgetn()
(std::basic_streambuf<CharT,Traits> 的 public 成員函式) [編輯]
放置區
將一個字元寫入放置區並推進下一個指標
(std::basic_streambuf<CharT,Traits> 的 public 成員函式) [編輯]
呼叫 xsputn()
(std::basic_streambuf<CharT,Traits> 的 public 成員函式) [編輯]
回放
將一個字元放回輸入序列
(std::basic_streambuf<CharT,Traits> 的 public 成員函式) [編輯]
將輸入序列中的下一個指標後退一個位置
(std::basic_streambuf<CharT,Traits> 的 public 成員函式) [編輯]

受保護的成員函式

構造 basic_streambuf 物件
(protected 成員函式) [編輯]
(C++11)
替換 basic_streambuf 物件
(protected 成員函式) [編輯]
(C++11)
交換兩個 basic_streambuf 物件
(protected 成員函式) [編輯]
區域設定
[虛]
響應關聯區域設定的更改
(std::basic_streambuf<CharT,Traits> 的虛 protected 成員函式) [編輯]
定位
[虛]
如果允許,用使用者定義的陣列替換緩衝區
(std::basic_streambuf<CharT,Traits> 的虛 protected 成員函式) [編輯]
使用相對定址重新定位輸入序列、輸出序列或兩者的下一個指標
(std::basic_streambuf<CharT,Traits> 的虛 protected 成員函式) [編輯]
使用絕對定址重新定位輸入序列、輸出序列或兩者的下一個指標
(std::basic_streambuf<CharT,Traits> 的虛 protected 成員函式) [編輯]
[虛]
將緩衝區與關聯的字元序列同步
(std::basic_streambuf<CharT,Traits> 的虛 protected 成員函式) [編輯]
獲取區
如果已知,獲取關聯輸入序列中可用於輸入的字元數
(std::basic_streambuf<CharT,Traits> 的虛 protected 成員函式) [編輯]
從關聯輸入序列中讀取字元到獲取區
(std::basic_streambuf<CharT,Traits> 的虛 protected 成員函式) [編輯]
[虛]
從關聯輸入序列中讀取字元到獲取區並推進下一個指標
(std::basic_streambuf<CharT,Traits> 的虛 protected 成員函式) [編輯]
[虛]
從輸入序列中讀取多個字元
(std::basic_streambuf<CharT,Traits> 的虛 protected 成員函式) [編輯]
返回獲取區起始、當前字元和結尾的指標
(protected 成員函式) [編輯]
推進輸入序列中的下一個指標
(protected 成員函式) [編輯]
重新定位輸入序列的起始、下一個和結束指標
(protected 成員函式) [編輯]
放置區
[虛]
向輸出序列寫入多個字元
(std::basic_streambuf<CharT,Traits> 的虛 protected 成員函式) [編輯]
從放置區向關聯輸出序列寫入字元
(std::basic_streambuf<CharT,Traits> 的虛 protected 成員函式) [編輯]
返回放置區起始、當前字元和結尾的指標
(protected 成員函式) [編輯]
推進輸出序列的下一個指標
(protected 成員函式) [編輯]
重新定位輸出序列的起始、下一個和結束指標
(protected 成員函式) [編輯]
回放
將一個字元放回輸入序列,可能會修改輸入序列
(std::basic_streambuf<CharT,Traits> 的虛 protected 成員函式) [編輯]