簡介
一般,若要在流中存儲數據,這個流為輸出流;要從流中讀取數據,這個流為輸入流。有的流既是輸入流,又是輸出流。流類形成的層次結構就構成流類庫,即流庫。與C 語言中的輸入/輸出流庫一樣,C++的輸入輸出流庫不是語言的一部分,而是作為一個獨立的函式館提供的。因此,在使用時需要包含相應的頭檔案。
輸入流和輸出流:在編寫程式時,常要輸入一些數據,在處理完數據之後,有要把結果輸出. c++ 沒有專門的輸入輸出語句,輸入輸出都有流庫來處理.通過輸出流,擁護可以從這些設備中讀取數據;通過輸出流則可以往設備中寫數據.
輸出流:我們用cout輸出過數據.實質上.cout 就是輸出流類ostream的派生類預定義的一個對象.它與標準輸出設備相聯繫,以便把數據送往螢幕顯示.在ostream類中,重載了<<運算符,用來處理各種內部類型的輸出
輸入流:c++也為輸入定義了一個流類istream.這個類中重載了>>運算符,以便從先觀的設備中讀取數據,對應與插入運算.這裡>>運算符內稱為析取運算.
檔案流
C++系統通過對流類進一步擴展,提供了支持檔案I/O的能力,使得程式設計師在建立和使用檔案時,就像使用cin和cout一樣方便。下圖新派生的五個類用於檔案處理。fstreambase類提供了檔案處理所需的全部成員函式,在它的派生類中沒有提供新的成員函式。 ifstream類用於檔案的輸入操作;ofstream類用於檔案的輸出操作,fstream類允許對檔案進行輸入/輸出操作。這幾個類同時繼承了前面介紹的流類的基本類等級中定義的成員函式。使用這些類時,必須在程式中嵌入頭檔案fstream.h通過打開一個檔案,可將一個流與一個檔案相聯結。
filedbuf是streambuf的派生類,提供對檔案緩衝區的管理能力。我們一般不涉及這個類C++系統通過對流類進一步擴展,提供了支持檔案I/O的能力,這使得程式設計師在建立和使用檔案時,就像使用cin和cout一樣方便。左圖新派生的五個類用於檔案處理。fstreambase類提供了檔案處理所需的全部成員函式,在它的派生類中沒有提供新的成員函式。ifstream類用於檔案的輸入操作;ofstream類用於檔案的輸出操作,fstream類允許對檔案進行輸入/輸出操作。這幾個類同時繼承了前面介紹的流類的基本類等級中定義的成員函式。使用這些類時,必須在程式中嵌入頭檔案fstream.h通過打開一個檔案,可將一個流與一個檔案相聯結。在ios類中定義的一組枚舉常量名給出了可允許的檔案打開方式:
in----------------------- 打開一個檔案進行操作
out---------------------- 打開一個檔案進行寫操作
ate---------------------- 檔案打開時將檔案指針指向檔案尾
app---------------------- 添加,輸出的內容添加到檔案尾
trunc-------------------- 若檔案存在,清除原有內容,將長度截為0
nocreat------------------ 若檔案不存在,打開操作失敗