共用方式為


basic_streambuf Class

描述抽象的基底類別衍生的資料流緩衝區中,用來控制的項目與特定的表示資料流的傳輸。

template<class Elem, class Tr = char_traits<Elem> >
   class basic_streambuf;

參數

備註

樣板類別描述抽象的基底類別衍生的資料流緩衝區中,用來控制的項目與特定的表示資料流的傳輸。 物件類別的basic_streambuf可幫助控制資料流型別的項目與Tr,也就是 char_type,其字元特性由類別 char_traits,也就是 traits_type

每個資料流緩衝區在概念上控制兩個獨立資料流: 一個用於擷取 (輸入),代表插入 (輸出) 的一個。 特定的表示法可能,不過,使其中一個或多個這些資料流無法存取。 通常,它會保留某些兩個資料流之間的關係。 您插入至輸出資料流的 basic_stringbuf<Elem, Tr> 物件,比方說,是什麼您稍後擷取其輸入資料流中。 當您將一個資料流的 basic_filebuf<Elem, Tr> 物件,您將其他資料流可串聯使用。

樣板類別的公用介面basic_streambuf提供通用於所有的資料流緩衝區,不過進行特製化的作業。 受保護的介面會提供所需的資料流的特定表示,執行其工作的作業。 受保護的虛擬成員函式可讓您修正特定的方式顯示資料流的衍生的資料流緩衝區的行為。 在此文件庫中的每個衍生的資料流緩衝區將告訴您如何專門負責其受保護的虛擬成員函式的行為。 這個主題會說明基底類別,也就是通常不進行任何動作,預設行為。

剩餘的受保護的成員函式控制項複製到及從任何提供給緩衝區傳輸 ─ 為了的儲存體和資料流。 輸入的緩衝區,比方說,是由下列算式描述:

  • eback,變數的指標,緩衝區的開頭。

  • gptr,變數的指標,要讀取的下一個項目。

  • egptr,剛好超過緩衝區結尾的指標。

同樣地,輸出緩衝區的特點在於:

  • pbase,變數的指標,緩衝區的開頭。

  • pptr,要寫入的下一個元素的指標。

  • epptr,剛好超過緩衝區結尾的指標。

對於任何緩衝區中,請使用下列通訊協定:

  • 如果下一個指標為 null,存不在於任何緩衝區。 否則,所有的三個指標指向相同的順序。 它們可以安全地比較順序。

  • 輸出緩衝區中,如果下一個指標比較小於結束指標,您可以儲存在下一個指標所指定的寫入位置的項目。

  • 輸入緩衝區中,如果下一個指標比較小於結束指標,您可以參閱讀取下一個指標所指定的位置處的項目。

  • 輸入緩衝區中,為開頭指標比較小於下一個指標,如果您可以放回項目遞減的下一個指標所指定的 putback 位置。

任何受保護的虛擬成員函式,您撰寫的類別衍生自basic_streambuf<Elem, Tr> 必須一起合作,以維護此通訊協定。

An object of class basic_streambuf<Elem, Tr> 儲存先前所述的六個指標。 它也會將地區設定物件儲存在型別的物件的地區設定為潛在供衍生的資料流緩衝區。

9h24a8cd.collapse_all(zh-tw,VS.110).gif建構函式

basic_streambuf

建構型別的物件basic_streambuf

9h24a8cd.collapse_all(zh-tw,VS.110).gifTypedef

char_type

將相關聯的型別名稱Elem樣板參數。

int_type

將關聯中的型別名稱basic_streambuf範圍Elem樣板參數。

off_type

將關聯中的型別名稱basic_streambuf範圍Elem樣板參數。

pos_type

將關聯中的型別名稱basic_streambuf範圍Elem樣板參數。

traits_type

將相關聯的型別名稱Tr樣板參數。

9h24a8cd.collapse_all(zh-tw,VS.110).gif成員函式

eback

受保護的函式會傳回一個指標至輸入緩衝區的開頭。

egptr

受保護的函式會傳回剛好超過結尾輸入緩衝區的指標。

epptr

受保護的函式,傳回指向剛好超過最後的輸出緩衝區的指標。

gbump

受保護的函式能加上_Count到下一個輸入緩衝區的指標。

getloc

取得basic_streambuf物件的地區設定。

gptr

受保護的函式,會傳回下一個項目,輸入緩衝區的指標。

增強

A 受保護的虛擬函式呼叫之 pubimbue

in_avail

傳回準備好要從緩衝區中讀取的項目數目。

Overflow - 溢位

受保護虛擬函式可在新的字元會被插入到已滿的緩衝區時呼叫。

pbackfail

受保護的虛擬成員函式,則嘗試輸入的資料流,放回到項目變成目前的項目 (指向下一個指標)。

pbase

受保護的函式,傳回開頭輸出緩衝區的指標。

pbump

受保護的函式能加上count到下一個輸出緩衝區的指標。

pptr

受保護的函式,會傳回下一個項目,輸出緩衝區的指標。

pubimbue

basic_streambuf物件的地區設定。

pubseekoff

呼叫 seekoff、 受保護而衍生類別中覆寫虛擬函式。

pubseekpos

呼叫 seekpos、 受保護的虛擬函式在衍生類別中覆寫,並會重設目前的指標位置。

pubsetbuf

呼叫 setbuf、 受保護而衍生類別中覆寫虛擬函式。

pubsync

呼叫同步、 受保護的虛擬函式在衍生類別中覆寫,並更新此緩衝區與關聯的外部資料流。

sbumpc

讀取並傳回目前的項目,並將資料流的指標。

seekoff

受保護的虛擬成員函式會試著改變受控制的資料流的目前位置。

seekpos

受保護的虛擬成員函式會試著改變受控制的資料流的目前位置。

setbuf

受保護的虛擬成員函式在執行特定每一個衍生的資料流緩衝區的作業。

setg

受保護的函式來儲存_Gbeg開頭的指標,在_Gnext在下一個指標,以及_Gend結束指標是否為輸入緩衝區中。

步驟 5

受保護的函式來儲存_Pbeg在開頭指標和_Pend結束指標是否為輸出緩衝區中。

sgetc

傳回目前的項目,而不會變更資料流中的位置。

sgetn

傳回讀取的項目數。

showmanyc

受保護的虛擬成員函式會傳回可從輸入資料流擷取,並確定該程式將不會受制於無限期的等待的字元數的計數。

snextc

讀取目前的項目並傳回下列項目。

sputbackc

char_type資料流中。

sputc

將字元放到資料流。

sputn

將字元字串放置到資料流。

stossc

移動過去的資料流中目前的項目。

sungetc

從資料流中取得的字元。

交換

交換中所提供的值對這個物件中的值basic_streambuf參數的物件。

同步處理

受保護虛擬函式,則嘗試任何關聯的外部資料流與同步處理受控制的資料流。

uflow

受保護虛擬函式從輸入資料流中擷取目前的項目。

反向溢位

受保護虛擬函式從輸入資料流中擷取目前的項目。

xsgetn

受保護虛擬函式從輸入資料流中擷取項目。

xsputn

受保護虛擬函式,將項目插入至輸出資料流。

9h24a8cd.collapse_all(zh-tw,VS.110).gif運算子

operator=

從另一個指派的值,這個物件的basic_streambuf物件。

需求

標頭: <streambuf>

Namespace: 標準

請參閱

參考

在標準 C++ 程式庫中的執行緒安全

iostream 程式設計

iostreams 慣例

其他資源

basic_streambuf 成員

<streambuf> 成員