在C語言中,我們可以使用函式freopen()將現有的FILE指標重定向到另一個流,
freopen()的原型為
FILE * freopen(const char *檔案名,const char *模式,FILE * stream);
例如,將標準輸出重定向為一個文本檔案,我們可以撰寫
freopen(“ text_file.txt”,“ w”,stdout);
盡管C ++仍支持此方法,但本文討論了另一種重定向I / O流的方法,
C ++是一種面向物件的編程語言,它使我們不僅能夠定義自己的流,而且還可以重定向標準流,因此,在C ++中,流是一個物件,其行為由類定義,因此,任何表現得像流的東西都是流,
C ++中的Streams物件主要分為三種型別:
(1)istream:此型別的Stream物件只能從流中執行輸入操作
(2)ostream:這些物件只能用于輸出操作,
(3)iostream:可用于輸入和輸出操作
所有這些類以及檔案流類都從以下類派生:ios和streambuf,因此,檔案流和IO流物件的行為類似,
所有流物件還具有類streambuf的關聯資料成員,簡單地說,streambuf物件是流的緩沖區,從流中讀取資料時,我們不會直接從源中讀取資料,而是從鏈接到源的緩沖區中讀取資料,同樣,首先在緩沖區上執行輸出操作,然后在需要時重繪緩沖區(將其寫入物理設備),
C ++允許我們為任何流設定流緩沖區,因此,重定向流的任務只是減少到更改與流關聯的流緩沖區,因此,要將流A重定向到流B,我們需要做
獲取A的流緩沖區并將其存盤在某處
將A的流緩沖區設定為B的流緩沖區
如果需要,將A的流緩沖區重置為其先前的流緩沖區
我們可以使用函式ios :: rdbuf()來執行兩次操作,
1)stream_object.rdbuf():回傳指向stream_object的流緩沖區的指標
2)stream_object.rdbuf(streambuf * p):將流緩沖區設定為p指向的物件
這是下面的示例程式以顯示步驟:

注意:
以上步驟可以濃縮為一個步驟

希望對你有幫助~
另外如果你想更好的提升你的編程能力,學好C語言C++編程!彎道超車,快人一步!筆者這里或許可以幫到你~
C語言C++編程學習交流圈子,QQ群1090842465【點擊進入】微信公眾號:C語言編程學習基地
分享(原始碼、專案實戰視頻、專案筆記,基礎入門教程)
歡迎轉行和學習編程的伙伴,利用更多的資料學習成長比自己琢磨更快哦!
編程學習書籍分享:
編程學習視頻分享:
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/254659.html
標籤:C++
上一篇:問一下,mybatis如何把查詢的結果封裝成一個陣列
下一篇:【知識教程】C語言撰寫2048
