C++primer第五版【學習筆記】——第一章

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+d

3.習題

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;
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章