名稱空間
變體
操作

std::basic_stringbuf

來自 cppreference.com
< cpp‎ | io
 
 
 
 
定義於標頭檔案 <sstream>
template<

    class CharT,
    class Traits = std::char_traits<CharT>,
    class Allocator = std::allocator<CharT>
> class basic_stringbuf

    : public std::basic_streambuf<CharT, Traits>

std::basic_stringbufstd::basic_streambuf,其關聯字元序列是記憶體中的任意字元序列,可以從 std::basic_string 的例項初始化或作為其例項提供。

std::basic_stringbuf 的典型實現將型別為 std::basic_string 或等效的可變大小序列容器物件直接作為資料成員,並將其用作受控字元序列(std::basic_streambuf 的六個指標所指向的陣列)和關聯字元序列(所有輸入操作的字元源和輸出的目標)。

此外,典型實現還包含一個型別為 std::ios_base::openmode 的資料成員,用於指示關聯流的 I/O 模式(僅輸入、僅輸出、輸入/輸出、在末尾等)。

如果 overflow() 使用過度分配策略,則可以儲存額外的“高水位”指標以跟蹤最後一個已初始化的字元。

(C++11 起)

提供了用於常見字元型別的幾個 typedef

定義於標頭檔案 <sstream>
型別 定義
std::stringbuf std::basic_stringbuf<char>
std::wstringbuf std::basic_stringbuf<wchar_t>

目錄

[編輯] 成員型別

成員型別 定義
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[編輯]
allocator_type Allocator[編輯]

[編輯] 僅用於說明的成員

buf 用作底層緩衝區的 std::basic_string<CharT, Traits, Allocator>
(僅用於闡釋的成員物件*)
mode 關聯流的 std::ios_base::openmode
(僅用於闡釋的成員物件*)
初始化輸入和輸出序列
(僅用於說明的成員函式*)

[編輯] 公有成員函式

構造 basic_stringbuf 物件
(公有成員函式) [編輯]
(C++11)
賦值一個 basic_stringbuf 物件
(公有成員函式) [編輯]
(C++11)
交換兩個 basic_stringbuf 物件
(公有成員函式) [編輯]
(解構函式)
[virtual] (隱式宣告)
銷燬 basic_stringbuf 物件及其持有的字串
(虛公有成員函式) [編輯]
替換或獲取關聯字元字串的副本
(公有成員函式) [編輯]
獲取與內部序列容器關聯的分配器的副本
(公有成員函式) [編輯]
(C++20)
獲取底層字元序列的檢視
(公有成員函式) [編輯]

[編輯] 受保護的成員函式

[virtual]
返回輸入序列中下一個可用的字元
(虛受保護成員函式) [編輯]
[virtual]
將一個字元放回輸入序列
(虛受保護成員函式) [編輯]
[virtual]
將一個字元附加到輸出序列
(虛受保護成員函式) [編輯]
[virtual]
嘗試用陣列替換受控字元序列
(虛受保護成員函式) [編輯]
[virtual]
使用相對定址重新定位輸入序列、輸出序列或兩者的下一個指標
(虛受保護成員函式) [編輯]
[virtual]
使用絕對定址重新定位輸入序列、輸出序列或兩者的下一個指標
(虛受保護成員函式) [編輯]

[編輯] 非成員函式

特化 std::swap 演算法
(函式模板) [編輯]

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

受保護的成員函式

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