C++專題總結之輸入輸出

主題 概要
C++基礎 C++的I/O部分概括、總結
編輯 時間
新建 20160826
序號 參考資料
1 C++ Primer Plus
2

相對與JAVA,C++的輸入輸出更加整潔,沒有這麼多裝飾器,更加易於使用和理解。

流和緩衝區

C++程序把輸入和輸出看作字節流。輸入時,程序從輸入流中抽取字節;輸出時,程序將字節插入到輸出流中。流充當了程序和流源或流目標之間的橋樑。也使得程序使用相同的方式處理輸入和輸出,獨立於具體的來源和去向。

管理輸入包含兩步:
將流與輸入去向的程序關聯起來;
將流與文件連接起來;

同樣,管理輸出包含兩步:
將輸出流連接到程序;
將輸出目標與流關聯;

流的抽像圖如下:
這裏寫圖片描述

通常,爲了提高效率,在流的一端爲引進一塊緩衝區,作爲信息從設備傳輸到程序或程序傳輸到設備時的臨時存儲工具。
C++ iostream文件中通過一系列的類來管理流和緩衝區,其中的一些類:
這裏寫圖片描述

streambuf類爲緩衝區提供了內存,並提供了用於填充緩衝區、訪問緩衝區內存、刷新緩衝區和管理緩衝區內存的類方法;
ios_base 類表示流的一般特徵,如是否可讀取、 是二進制流還是文本流等;
ios 類 基於ios_base, 其中每括了一個指向streambuf對象的指針;
ostream類 是從ios類派生而來的,提供了輸出方法;
istream類也是從ios類派生而來的,提供了輸入方法;
iostream類是基於istream和ostream類的,因此繼承了輸入方法和輸出方法;

要使用這些工具,必須使用適當的類對象,創建這樣的對象(如count)將自動打開一個流,自動創建緩衝區,並將其與流關聯起來。

C++中已經預定義了8個流對象(4 個用於窄字符流,4 個用於寬字符流),它們是:
cin 對象對應於標準輸入流,這個流被關聯到標準輸入設備(鍵盤);
cout對象與標準輸出流相對應,這個流被關聯到標準輸出設備(顯示器);
cerr對象與標準錯誤流相對應,關聯到標準輸出設備,可用於顯示錯誤消息,沒被緩衝;
clog對象也對應着標準錯誤流,這個流被關聯到標準輸出設備,這個流被緩衝;
與此對應的是寬字符流的4個對象,wcin,wcout,wcerr,wclog。

Cout的使用

重載 << 運算符

<< 運算符的默認含義是按位左移運算符,但 ostream類重新定義了<<運算符,將其重載爲輸出,示作插入運算符,它能夠識別出C++中所有的基本類型和字符串指針類型。
插入運算符的所有化身的返回類型都是ostream &,原型的格式如下:
ostream & operator « (type)
其中,type是要顯示的數據的類型。返回類型 ostream &意味着使用該運算符將返回一個指向ostream 的對象。到底指向哪個對象呢?其實就指向調用該運算符的對象。
這裏寫圖片描述

Cin的使用

發佈了38 篇原創文章 · 獲贊 29 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章