1. 程式人生 > >C++ Primer 第五版 第一章總結

C++ Primer 第五版 第一章總結

   由於第一章只是簡單介紹,我就沒什麼好總結的。於是,我就寫一些我覺得自己要記住和自己以前不知道的知識點吧。

   1. iostream庫包含兩個基礎型別 istream 和 ostream,分別表示輸入流和輸出流。一個流就是一個字元序列,是從IO裝置讀出或寫入IO裝置的。術語“流”(stream)想要表達的是,隨著時間的推移,字元是順序生成或消耗的。

    2. iostream庫定義了4個IO物件。為了處理輸入,此庫定義了一個名為 cin 的istream型別的物件。這個物件也被稱為標準輸入。對於輸出,此庫定義了一個名為 cout 的 ostream型別的物件。此物件也被稱為標準輸出。標準庫還定義了其他兩個ostream物件,名為 cerr 和 clog,通常用 cerr 來輸出警告和錯誤訊息,用 clog 來輸出程式執行時的一般性資訊。

   3. 輸出運算子(<<)的計算結果是其左側運算物件,輸入運算子(>>)與輸出運算子類似,也是返回左側運算物件作為其計算結果。標準庫定義了不同版本的輸入輸出運算子,來處理不同型別的運算物件。我覺得就是對輸入輸出運算子進行運算子過載。其實我有個疑問,那這個輸入輸出運算子不就是和左右移位運算子一樣了嗎? 

   4. endl是一個操縱符。寫入endl的效果是結束當前行,並將與裝置關聯的緩衝區(buffer)中的內容刷到裝置中。緩衝重新整理操作可以保證到目前為止程式所產生的所有輸出都真正寫入到輸出流中,而不是僅停留在記憶體中等待寫入流。

   5. 名稱空間可以幫助我們避免不經意的名字定義衝突,以及使用庫中相同名字導致的衝突。標準庫定義的所有名字都在名稱空間  std中。作用域運算子是 :: 。

   6. 在C++中,用 cin 來讀取數量不定的資料時,通常的寫法是:

while(std::cin >> value)

    這段程式碼中,迴圈地從標準輸入( cin )中讀取資料。因為 >> 運算子的結果為左側運算物件,所以也就是 cin。因此迴圈的判斷條件是 cin 物件,而當我們使用一個istream物件作為條件時,其效果是檢測流的狀態。如果流是有效的,即流未遇到錯誤,那麼檢測成功,迴圈繼續執行。當遇到檔案結束符(EOF),或遇到一個無效輸入時(例如讀入的值不是一個整數),istream物件的狀態就會變為無效。處於無效狀態的istream物件會使條件變為假。

  7. 標準庫標頭檔案通常不帶字尾。編譯器一般不關心標頭檔案名的形式,但有的IDE對此有特定要求。