int main() // int ——返回型別 main——函式型別 ()——形參列表
內 —— 函式體
}
大多數系統中,main的返回值用來指示型別。
return 0; //成功
return (非0); //含義由系統定義 通常指出錯誤型別
c++語言沒有定義任何輸入輸出語句,通過包含全面的標準庫提供io機制。
cin //標準輸入
cout //標準輸出
#include //每個使用標準庫設施的程式必須包含相關的標頭檔案
iostream庫包含兩個基礎型別istream和ostream表示輸入流和輸出流乙個流就是乙個字串行
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。輸...