C++ primer 1.2 初识输入输出

缘起

《C++ Primer 5ed》 1.2

分析

C++并未定义任何输入输出(IO)语句,取而代之,包含的是一个标准库来提供IO机制.

我们最常用的

#include

就包含2个基础类型 istream和ostream,分别表示输入流和输出流. 所谓1个流就是1个字符序列.是从IO设备读取出或者写入IO设备的.

cin、cout、cerr、clog分别表示标准输入、标准输出、标准错误、标准日志. 系统将程序运行的窗口和这些对象关联起来. 因此cin时数据将从程序正在运行的窗口读入,cout时,数据被写出到同一个窗口

<< 运算符是二元的,左侧的必须要是一个ostream对象,右侧是要打印的值,运算的结果是左侧的对象(即一个ostream),正因为如此,所以cout << 可以链式.

cout<<endl; endl的作用就是结束当前行,并且将设备关联的缓冲区(buffer)里面的内容flush到设备中去,flush操作可以保证目前为止程序所产生的所有输出都真正写入到输出流中去,而不是仅仅停留在内存中等待写入流(程序一旦崩溃,这些内容就丢失了).

cin >> ,其中 >> 也是二元运算符. 左侧是istream, 右侧是接收读入数据的对象,运算结果也是这个istream. 所以cin >> 也可以链式.

注意,cout也好,cin也罢,都可以在一行实现输出(输入)多种不同类型的数据,这是因为标准库定义了多种<<(>>)的重载以处理不同的数据类型的IO操作.