C primer 學習筆記 第一章

2021-08-24 20:40:43 字數 3544 閱讀 1866

int main()          // int ——返回型別   main——函式型別 ()——形參列表

內 —— 函式體

}

大多數系統中,main的返回值用來指示型別。

return 0;        //成功

return (非0); //含義由系統定義 通常指出錯誤型別

c++語言沒有定義任何輸入輸出語句,通過包含全面的標準庫提供io機制。

cin    //標準輸入

cout //標準輸出

#include //每個使用標準庫設施的程式必須包含相關的標頭檔案
iostream庫包含兩個基礎型別istreamostream表示輸入流和輸出流乙個流就是乙個字串行

cin 為 istream型別的物件

std::cout << "enter two numbers" << std::endl;     // (<<)——輸出運算子

endl //操縱符 結束當前行 並將相關聯的快取區內容刷到裝置中(清空記憶體)

(<<)運算子 接受兩個物件

ostream物件  << 要列印的值

std::cout         //(:)——作用域運算子

//編輯器從左側的命名空間中尋找右側的名字

在 std 的命名空間中的,命名空間可以避免名字定義衝突,以及使用庫中相同名字導致的錯誤;

using std::cout;       //using宣告 之後就可以直接訪問命名空間中的名字

//前例可改為:

cout << "enter two numbers" << endl; //完全等價

注意:1.用的的每個名字都必須有自己的宣告語句           2.標頭檔案中不應該包含using宣告(標頭檔案的內容會拷貝到其引用的檔案中去,導致所有的檔案都會有這個宣告,可能造成未知的名字衝突)

/*     (希望注釋內容)

/* */(希望注釋內容) */

(希望注釋內容)*/ //此行注釋會失效

// /* //此行注釋失效

(希望注釋內容)

*/

注釋 注意事項:1.注釋界定符(/*…………*/)不能巢狀

2.單行注釋(//)會將任何內容忽略(包括注釋界定符)

3.在注釋跨越多行時,我們使用風格如下:

#include /*

*

* 注釋內的每一行都用乙個 * 開頭

* 從而指出整個範圍都是多行注釋的一部分

**/

int value = 0, sum = 0;

while (cin >> value) //istream物件作為條件,其效果為檢測流的狀態

sum += value;

cout << sum;

輸入運算子(<<) 返回其左側運算物件(即istream)作為其計算結果。

當遇到檔案結束符無效輸入時,istream物件狀態變為無效。條件變假。

(windows中,檔案結束符(end-of-file)為ctrl+ z,連擊enter

連續輸入istream流會導致之後輸入流無法輸入,解決辦法:

1、當cin接收到錯誤輸入後,其狀態會被改變,不再接收輸入,只有用cin.clear()將cin的goodbit復位之後,才能正常接收輸入。 

2、輸入時鍵入的enter也會被儲存在緩衝區中。

int value = 0, sum = 0;

while (cin >> value)

sum += value;

cout << sum << endl; //使用ctrl+z 結束

cout << cin.eof() << cin.fail() << cin.bad() << cin.good() << endl; //0 1 0 0

std::cin.clear(); //清除cin流 並設定goodbit狀態位 由於它是預設引數 所以不需顯示傳遞

std::cin.ignore(); //把回車(包括回車)之前的所以字元從輸入緩衝(流)中清除出去

cout << cin.eof() << cin.fail() << cin.bad() << cin.good() << endl; //0 0 0 1

int currval = 0, val = 0;

if (cin >> currval) //可以再次使用輸入流

這裡牽扯到乙個概念:條件狀態。io標準庫管理一系列條件狀態(condition state)成員,用來標記給定的io物件是否處於可用狀態,或者碰到了哪種特定的錯誤。

類介紹——c++重要特性之一:

每乙個類實際上都定義了乙個新的型別,其型別就為類名。與內建型別一樣,可以定義類型別的變數。

sales_items item;            //item是乙個sales_item型別的變數
通常將「乙個sales_item型別的物件」簡單說成「乙個sales_item物件」

類sales_item的作者定義了類物件可以執行的所有操作。

if (item1.isbn() == item2.isbn() )          //以乙個類物件的名義呼叫成員函式
呼叫名為 isbn 的成員函式:定義為類的一部分的函式

點運算子(.)表達需要「名為item的物件的isbn成員」,點運算子只用於類型別的物件【結構必須為:類型別物件.成員名】

呼叫運算子(())表達呼叫函式,放置實參(argument)列表。

術語表:

標頭檔案(header):使類或其他名字的定義可以被多個程式使用的一種機制

iostream標頭檔案:提供了面向流的輸入輸出的標準庫型別

標準庫(standard library):乙個型別和函式的集合,每個c++編譯器都必須支援。標準庫提供了支援io操作的型別。c++程式設計師傾向於用「庫」代指整個標準庫,還傾向於用庫型別表示標準庫的特定部分。例如 用「iostream庫」表示標準庫中定義io類的部分。

C Primer 學習筆記 第一章

include int main c 程式必須有main 函式,返回值必須是 int 型別。main 函式是 唯一 被系統顯示呼叫的函式 該值可以看成乙個狀態指示器,返回 0 往往表示成功執行,返回非0,則表示出現特定的錯誤。io 標準庫,iostream 庫,定義了4個io 物件 cin cout...

c primer 學習筆記 第一章

習題1 11 int main std cout std endl getchar getchar return 0 在github上的答案,使用了std swap對輸入的兩數大小關係進行調整,並使用for實現顯示。對於swap功能,還可利用位運算實現,如下 include int main whi...

c primer學習筆記 第一章

乙個函式包括返回型別,函式名,括號包圍的形參列表,函式體。函式體中return 語句包含的返回值型別必須與函式的返回型別相容。c 使用標準庫來提供io機制,一般為 iostream 庫,包含兩個基礎型別istream和ostream。標準庫定義了四個io物件 cin,cout,cerr,clog。輸...