第一章 开始 ✔
贯穿始终的例子:假如我们的书店保存所有销售记录的档案,每条记录保存了某本书的一次销售的信息(一册或多册)。每条记录包含三个数据项:
0-201-70353-x 4 24.99
第一项是书的 ISBN 号(国际标准书号,一本书的唯一标识),第二项是售出的册数,最后一项是书的单价。
1.1 编写一个简单的 C++程序
略。
1.1.1 编译 、运行程序
略。
1.2 初识输入输出
ios 库包含两个基础类型 istream 和 ostream,分别表示输入流和输出流。一个流就是一个字符序列,是从 IO 设备读出或者写入 IO 设备的。术语"流"(stream)想表达的是,随着时间的推移,字符是顺序生成或消耗的。
标准输入输出对象
cin:标准输入对象
cout:标准输出对象
cerr:输出警告和错误信息
clog:输出程序运行时的一般性信息
1.3 注释简介
/**/(注释界定符)不能嵌套!
比如:
/*
* /* */ 注释
*
*/
会报错。因为注释界定符遇到*/,注释就会结束,“注释”两个字会被当成源码。
1.4 控制流
1.4.3 读取数量不定的输入数据
#include <iostream>
using namespace std;
int main() {
int sum = 0, value = 0;
while (cin >> value)
sum += value;
cout << "Sum is: " << sum <<endl;
return 0;
}
**输入运算符返回其左侧运算对象。**在上述代码中,cin >> value返回其左侧运算对象,也就是std::cin。因此,循环条件实际上检测的是std::cin。
当我们使用一个istream对象作为条件时,其效果是检测流的状态。如果流是有效的,即流未遇到错误,那么检测成功。当遇到文件结束符,或遇到一个无效输入时(如读入的值不是一个整数),istream对象的状态会变为无效。处于无效状态的istream对象会使条件变为假。
输入crtl+Z(文件结束符)或非整数类型,istream对象的状态会变为无效,并输出结果。