(1)什么是“流”?
C++中的“流”(stream)是一种抽象,它表示数据从源端流向目的端。
输入流(Input Stream)表示的是数据从输入设备(如键盘、磁盘等)流向内存,输出流(Output Stream)表示的是数据从内存流向输出设备(如屏幕、打印机、磁盘等)。输入输出流(I/O Stream)是输入流和输出流的合称。
“流”中的内容可以是任意形式的数据,例如:ASCII字符、二进制形式的数据、图形、图像、声音等信息。
(2)C++将输入输出流(简称I/O流)分成三种类型:
标准输入输出流:流向标准输入输出设备(即键盘、显示器)的数据;
文件输入输出流:流向外存磁盘文件的数据;
字符串输入输出流:对内存中指定的空间(通常用一个字符数组作为存储空间)进行输入输出操作,流向这里的数据。
我们只对标准输入输出流、文件输入输出流进行讨论,对字符串输入输出流不作介绍。
(3)输入输出的类、类库
流类:在C++中定义的实现I/O的类;
流库:多个流类及其类层次集合;
C++中的流类由两类平行基类ios和streambuf组成,所有流类都通过这两个基类派生出来。
ios类是所有ios类层次的基类,提供输入/输出所需要的公共操作。
(1)输出流对象
cout:输出基本类型数据时,不必考虑数据是什么类型,系统会自动判断,选择相应的重载函数;输出用户自己定义的类型数据时,要重载<<运算符(具体见第8讲内容);
cerr:是在屏幕上显示出错信息,与cout用法类似,不同的是只能在屏幕上,而不能在磁盘文件上输出错误信息;
clog:用法与cerr类似,不同点是它带有缓冲区。
(2)格式输出
1)用格式控制符控制输出
输出不同进制的数:dec(十进制)、hex(十六进制)、oct(八进制)
例:
int n=20;
cout<<"设置进制