1.前言
一直以來都習慣用C寫程序,對C++的瞭解,雖然在大學本科時期學過最基本的一些類,繼承,多態的機制,但是很少真正去編程序。最近拿到第五版的C++primer,裏面加入了最新的C++11標準,於是決定開始深入學習C++。2.筆記
2.1 main函數
在大多數系統上,main函數的返回值是一個狀態指示。返回0表示正常程序結束,返回非0值則表示出現錯誤。
int main(){
return 0;
}
2.2 類型
類型(包括內置類型和自定義類型),定義了一個數據集,及在該數據集上的一組操作。
2.3編譯環境
程序編譯可以通過集成開發環境(IDE),或者用命令行編譯。在windows系統和UNIX系統中有不同的編譯命令。在UNIX系統中,需指定 -std=c++0x 來打開C++11特性。
2.4endl
endl有結束當前行,並刷新緩衝區的作用。cout << endl語句即,將緩衝區輸出到輸出流(比如屏幕),並將緩衝區清空。用來調試的輸出信息,需要及時的使用endl,輸出到輸出流,以準確定位程序出錯的位置。
2.4 IO操作符
iostream庫用來處理數據的輸入和輸出。處理輸入的是istream類定義的cin對象,cin爲標準輸入;處理輸出的是ostream類定義的cout對象,cout爲標準輸出,另外還有cerr表示警告和錯誤信息,一般不寫入緩衝,clog表示程序執行的信息,一般寫入緩衝。
輸入輸出操作符>>和<<的返回值分別是istream類型和ostream類型的引用,這樣可以使操作符連寫,比如:cout << "Hello" << "world" << endl;
當使用istream作爲條件時,將會測試輸入流的狀態。如果輸入合法,則測試狀態爲真;如果遇到end-of-file或者輸入不合法,則測試狀態爲假。可以用來輸入未知個數的數據:
int v, sum = 0;
while (cin >> v) {
sum += v;
}
PS:從鍵盤輸入end-of-file的方法由系統決定,windows系統下爲ctrl+z,UNIX和Mac OS X系統下爲ctrl+d3.習題
1.23 寫一個程序讀入若干交易單,並計數相同ISBN號的條目出現的次數。假定相同ISBN號的條目按順序出現。
#include <iostream>
#include "Sales_item.h"
using namespace std;
int main(){
Sales_item item, curItem;
if (cin >> item) {
int cnt = 1;
while (cin >> curItem) {
if (item.isbn() == curItem.isbn()) {
cnt++;
}else {
cout << item << "Times: " << cnt << endl;
cnt = 1;
item = curItem;
}
}
cout << item << "Times: " << cnt << endl;
}
return 0;
}