第十天之C++输入和输出流介绍

I/O 流的概念和流类库的结构

程序的输入指的是从输入文件将数据传送给程序,程序的输出指的是从程序将数据传送
给输出文件。
C++输入输出包含以下三个方面的内容:
对系统指定的标准设备的输入和输出。即从键盘输入数据,输出到显示器屏幕。这种输
入输出称为标准的输入输出,简称标准 I/O。
以外存磁盘文件为对象进行输入和输出,即从磁盘文件输入数据,数据输出到磁盘文件。
以外存文件为对象的输入输出称为文件的输入输出,简称文件 I/O。
对内存中指定的空间进行输入和输出。通常指定一个字符数组作为存储空间(实际上可
以利用该空间存储任何信息)。这种输入和输出称为字符串输入输出,简称串 I/O。

C++的 I/O 对 C 的发展–类型安全和可扩展性
在 C 语言中,用 printf 和 scanf 进行输入输出,往往不能保证所输入输出的数据是可靠
的安全的。在 C++的输入输出中,编译系统对数据类型进行严格的检查,凡是类型不正确的
数据都不可能通过编译。因此 C++的 I/O 操作是类型安全(type safe)的。C++的 I/O 操作是可
扩展的,不仅可以用来输入输出标准类型的数据,也可以用于用户自定义类型的数据。
C++通过 I/O 类库来实现丰富的 I/O 功能。这样使 C++的输人输出明显地优于 C 语言中
的 printf 和 scanf,但是也为之付出了代价,C++的 I/O 系统变得比较复杂,要掌握许多细节。
C++编译系统提供了用于输入输出的 iostream 类库。iostream 这个单词是由 3 个部 分组
成的,即 i-o-stream,意为输入输出流。iostream 类库中包含许多用于输入输出的 类。常
用的见表
在这里插入图片描述

	ios 是抽象基类,由它派生出 istream 类和 ostream 类,两个类名中第 1 个字母 i 和 o 分

别代表输入(input)和输出(output)。 istream 类支持输入操作,ostream 类支持输出操作,
iostream 类支持输入输出操作。iostream 类是从 istream 类和 ostream 类通过多重继承而派
生的类。其继承层次见上图表示。
C++对文件的输入输出需要用 ifstrcam 和 ofstream 类,两个类名中第 1 个字母 i 和 o 分
别代表输入和输出,第 2 个字母 f 代表文件 (file)。ifstream 支持对文件的输入操作,ofstream
支持对文件的输出操作。类 ifstream 继承了类 istream,类 ofstream 继承了类 ostream,类
fstream 继承了 类 iostream。见图
在这里插入图片描述
I/O 类库中还有其他一些类,但是对于一般用户来说,以上这些已能满足需要了。

与 iostream 类库有关的头文件
iostream 类库中不同的类的声明被放在不同的头文件中,用户在自己的程序中
用#include 命令包含了有关的头文件就相当于在本程序中声明了所需 要用到
的类。可以换 —种说法:头文件是程序与类库的接口,iostream 类库的接口分
别由不同的头文件来实现。常用的有:
iostream 包含了对输入输出流进行操作所需的基本信息。
fstream 用于用户管理的文件的 I/O 操作。
strstream 用于字符串流 I/O。  stdiostream 用于混合使用 C 和 C + +的 I/O 机制时,例如想将 C 程序
转变为 C++程序。
iomanip 在使用格式化 I/O 时应包含此头文件。

在 iostream 头文件中定义的流对象
在 iostream 头文件中定义的类有 ios,istream,ostream,iostream,istream _withassign,
ostream_withassign,iostream_withassign 等。
在 iostream 头文件中不仅定义了有关的类,还定义了 4 种流对象,
对象 含义 对应设备 对应的类 c语言中相应的标准文件
cin 标准输入流 键盘 istream_withassign stdin
cout 标准输出流 屏幕 ostream_withassign stdout
cerr 标准错误流 屏幕 ostream_withassign stderr
clog 标准错误流 屏幕 ostream_withassign stderr

在 iostream 头文件中定义以上 4 个流对象用以下的形式(以 cout 为例):
ostream cout ( stdout);
在定义 cout 为 ostream 流类对象时,把标准输出设备 stdout 作为参数,这样它就与标准输
出设备(显示器)联系起来,如果有
cout <<3;
就会在显示器的屏幕上输出 3。

在 iostream 头文件中重载运算符
“<<”和“>>”本来在 C++中是被定义为左位移运算符和右位移运算符的,由于在 iostream 头文
件中对它们进行了重载, 使它们能用作标准类型数据的输入和输出运算符。所以,在用它
们的程序中必须用#include 命令把 iostream 包含到程序中。
#include

  1. a 表示将数据放入 a 对象中。

  2. <<a 表示将 a 对象中存储的数据拿出。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值