C++输入输出流:重定向

1、输入输出流

  • IO流类库提供对象之间的数据交互服务
  • 流类库预定义了一批流对象,连接常用的外部设备
  • 可以定义所需的IO流对象,使用流库提供的工作方式实现数据传输。

2、流类和流对象[比如视频流,音频流]

  • 程序中,对数据的输入/输出是以字节流实现的
  • 应用程序对字节序做出各种数据解释
  • IO系统的任务就是在内存和外部设备之间稳定可靠的传输数据和解释数据
  • 流类对象可以建立和删除,可以从流中获取数据和向流添加数据

3、流类库

  • 流库是用继承方法建立的输入输出类库
  • 流库具有两个平行的基类:streambuf和ios类,所有流类均已两者之一作为基类
  • streambuf类提供对缓冲区的低级操作:设置缓冲区,对缓冲区指针操作,向缓冲区存/取字符
  • ios类以及派生类提供使用流类的接口,支持对strambuf的缓冲区输入/输出的格式化或者非格式化转换。

4、头文件:

  • iostream.h:包含操作所有输入/输出流所需的基本信息,含有cin、cout、cerr、clog对象,提供无格式和格式化的IO
  • iomanip.h:包含格式化io操作算子,用于指定数据输入和输出的格式
  • fstream.h:除了文件信息,包含建立文件,读写文件的各种操作接口
  • 其他IO库:提供特定系统的某些功能

4、标准流:

  • 标准输入流cin输入到内存,标准输出流cout到屏幕
  • 标准流为用户常用的外部设备提供与内存之间的通信通道,对数据进行解释和传输,提供必要的数据缓冲。
  • cin:istream类的对象,通常连向键盘,可以重定向
  • cout:ostream类的对象,通常连向显示器,可以重定向
  • cerr:ostream类的对象,连向显示器,不可以重定向
  • clog:ostream类的对象,连向打印机,不可以重定向