七、输入/输出流--iostream简介

一、IOStream简介

ISStream类具有处理格式化显示的技术。
下面介绍:

  • stream对象
  • stream类别
  • stream类的操作符

1.stream对象

1.输入流和输出流对象

  1. c++ I/O由stream完成。
  2. stream是某个类别定义出来具有特定性质的对象
  3. c++流被实现为模板
  4. std::cin和ctd::cout是std::ios派生出来的全局实例对象

C++的iostream类库的一些细节,例如:在程序中包含iostream头文件,将自动创建8个stream对象(4个用于窄字符,4个用于宽字符):

  1. cin对象对应标准的输入stream:默认情况下stream被关联到标准输入设备(键盘)。wcin:类似,处理的是宽字符wchar_t类型。
  2. cout对象对应标准的输出stream:默认被关联到标准输出设备(显示器)。wcout:类似,处理得是wchar_t类型。
  3. cerr对象对应标准错误stream:默认情况被关联到标准输出设备。这个stream没有缓冲,则信息直接被发往屏幕。wcerr:类似,处理wchar_t类型。
  4. clog对象对应标准错误stream: 默认情况被关联到标准输出设备。这个stream有缓冲。wclog:类似,处理wchar_t类型。

2.文件流对象

文件流对象用于文件操作。程序需要实例化文件流类的对象。文件流类包括:

  • ofstream:输出
  • ifstream: 输入
  • fstream : 输入和输出

2.stream类别

对于不同的I/O,对于不同的stream类,其中最重要的是:

  • class istream : 定义input stream, 用来读取数据;
  • class ostream : 定义Output stream , 用来输出数据;
  • fstream: 文件的输入与输出

1.istream类和ostream类

两个来自模板:

typedef basic_istream<char> istream;
typedef basic_ofstream<char> ofstream;

IOStream程序库顶一个istream和ostream的全局对象,前面已说过:

  • cin: 对应标准stream : cstdin
  • cout: 对应 cstdcout
  • cerr: 对应 cstderr
  • clog: 标准日志通道,没有对应物,操作系统将他连接到cerr连接的装置,clog设有缓冲。

    1. “正常输出”和“错误信息的输出”需要分离。
    2. std::ostream类使用重载“<<”来输出
    3. std::istream类使用重载“>>”来读取输入

2.fstream类

文件操作输入和输出方式和处理标准输入和输出方式类似,
1. 写出文件:首先创建一个ofstream对象,并使用ostream方法,如“<<”或者write()方法。
2. 读取文件:首先创建一个ifstream对象,使用istream方法,如“>>”或者get().

3.stream操作符

operator<<operator>>被相应的stream类重载,分别用于输入和输出。

4.操控器(操纵符)(Manipulators)

大部分输出语句的最后,会写一个被称为操控器的东西,如std::endl;操控是专门用来操控stream的对象,仅仅改变输入和格式化输出的方式。
例如:

  • endl : 输出换行符’\n’,刷新output缓冲区

iostream中还有一些其他操控器,如: ends,flush,ws:
- ends: 输出’\0’
- flush : 刷新缓冲区
这几个都是属于ostream类

  • ws: 属于istream类,读入并忽略空格。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值