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