//22流的简介 /* "流"从字面上理解是流动的意思,书面上的解释是物质从一处往另一处流动的过程 C++的输入和输出遵循了这一概念,C++的输出是将一个对像的状态下换成一个字符序列,车出到指定的地方 cout<<"hello world"; 双引号中的hello word是所有输出的对像,C++的重载按位左移运算符<<将对像转换成一个向左移动的字符序列,cout则表示将其输出在计算机外部设备管理中,如显示器的屏幕上 C++的重载按位右移运算符>>表示从指定地方按照向右移动的顺序接受字符序列,然后将其转换为对像的数据成员的格式,cin则表示将该对像写入计算机内部设备中,如磁盘或者内存 由于这种操作方式类似于数据在流动,因此我们把控制数据流动的cin和cout叫做输入输出流,凡是跟输入输出流有关系的类都叫做流类,凡是实现流类功能成员函数全部合并在一个库中 该库叫做流类库,在C++中将这些流类和流类库封装起来,做成了一个类体系,以便宜于用户查找 和调用 iostream是我们经常使用的流类库头文件,该头文件中包括iostream类,ostream类和istream类等,ostream输出流类和istream输入流类同属于一个虚基类ios,ios类用来提供对流进行格工化数据的输入和输出(简写为I/O)操作和操作处理的成员函数 从ios类公有派生的istream继承了对流进行提取操作的成员函数,即控制输入函数,而从ios类公有派生的ostream则继承了对流进行插入操作的成员函数,即控制输出函数,而输入输出流类iostream则同时继承了输入和输出函数,因此iostream可看作是istream和ostream的合并,iostream可对流进行输入输出操作,该类并没有增加新的成员函数 另外ios基类还直接派生了文件流基类fstreambase和字符串流基类strstreambase 文件流基类fstreambase可以对文件流进行操作,字符串流基类strstreambase由对字会串流进行操作 输入文件流类ifstream同时继承了输入流类istream和fstreambase文件流基类, 输出文件流类oftream同时继承了ostream输出流类和和fstreambase文件流基类 输入字符串流类istream同时输入流类istream和字符串流基类strstreambase, 输出字符串流类ostream同时继承了输出流类ostream和字符串流基类strstremabase 输入输出充类iostream同时继承了输入流类istream和输入流类ostream 输入输出文件流类fstream同时同时继承了输入输入流类iostream和文件流基类fstreambase 输入输出字符串流类strstream同时继承了输入输出流类iostream和字符串流基类strstreambase ios ->istream ->ifstream ->istream_withassign ->istrestream ->ostring ->ofstream ->ostream_withassign ->ostream iostream ->fstream ->strstream ->stdiostream streambuf ->filebuf ->strstreambuf ->stdiobuf */