1.1 编写一个简单的C++程序
1.1.1 编译、运行程序
术语:集成开发环境(Integrated Developed Environment, IDE)
源程序文件命名约定
大多数编译器要求源码存储在一个或多个文件中,这些程序文件通常被称为源文件。常见C++程序源文件后缀有:cc、cxx、cpp、cp、C。
从命令行运行编译器
$ CC prog1.cc
其中CC是编译器的名字。编译器生成一个可执行文件。Windows系统将这个可执行文件命名为prog1.exe。UNIX系统常命名为a.out。
1.2 初识输入输出
C++语言常用标准库来提供IO机制。同时本书中很多示例使用了iostream库。该库包含两个基础类型istream和ostream,分别表示输入流和输出流。“流”(stream)这个术语想表达的是,随着时间的推移,字符是序列生成或消耗的。
标准输入输出对象
标准库定义了4个IO对象:cin、cout、cerr、clog。
一个IO库的程序
程序的第一行
#include <iostream>
告诉编译器我们想要使用iostream库。尖括号中的名字指出了一个头文件。每个使用标准库设施的程序都必须包含相关的头文件。对于非标准库的头文件,则用双引号包围。
向流写入数据
表达式
std::cout << "Enter two numbers: " << std::endl;
使用了输出运算符(<<)在标准输出上打印信息。输出运算符接受两个运算对象:右侧的运算对象是要打印的值,左侧的运算对象必须是一个ostream对象。左侧的ostream对象是运算符的运算结果。
该语句使用了两次输出运算符,即第一次运算结果成为了第二个运算符的左侧对象。该语句等同于:
(std::cout << "Enter two numbers: ") <<# std::endl;
也可以用两条语句表达:
std::cout << "Enter two numbers: "
std::cout << std::endl;
1.4 控制流
1.4.3 读取数量不定的输入数据
在预先不知道要对多少个数求和时,就需要不断读取数据直至没有新的输入为止:
1 | while (std::cin >> value) |
如果我们输入
3 4 5 6
则程序会输出
Sum is: 18
当我们使用一个istream对象作为条件时,其效果是检测流的状态。如果流时有效的,那么检测成功。当遇到文件结束符或一个无效输入(例如读入值与value定义的类型不相符),istream的状态会变为无效。
从键盘输入文件结束符
Windows: Ctrl + Z, Enter
Unix&MacOS: Ctrl + D
1.5 类简介
在C++中,我们通过定义一个类(class)来定义自己的数据结构。一个类定义了一个类型,以及与其关联的一组操作。每个类实际上都定义了一个新的类型,其类型名就是其类名。
类/对象可以进行的操作:
- 定义该类型的变量。
- 用输入、输出运算符读写该类型的对象。
- 在同类对象间进行赋值。
- 在两个同类对象间进行加法运算。