C++程序设计基础教程 第10章 输入输出流
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2019/2/22
第10章 输入/输出流
10.2 C++语言的基本流类体系
10.2.1 C++语言基本流类体系的构成
ios
istream iostrea m
ostream
istream_withassign
ostream_withassign
图10.1 I/O流类库的类层次
2019/2/22
第10章 输入/输出流
2019/2/22
第10章 输入/输出流
10.2 C++语言的基本流类体系
10.2.2标准输入/输出流
标准I/O流是C++语言预定义的对象,提供内存与 外部设备进行数据交互功能,对数据进行解释和传输, 提供必要数据缓冲。C++语言的I/O流类库中预先定 义了4个标准流对象:cin、cout、cerr和clog,它们不 是C++语言中的关键字。只要程序中包含了头文件 iostream,编译器调用相应的构造函数产生这4个标准 流对象,用户在程序中就可以直接使用了。
《C++程序设计基础教程》
第 10 章
输入/输出流
战略决定一切、执行决定一切、细 节决定一切!
第10章 输入/输出流
本章内容
输入/输出流的概念
1
C++语言的基本流类体系 2 文件的输入/输出
程序举例
2019/2/22
3
4
第10章 输入/输出流
数据的输入和输出(简写为I/O)包括对标准输入设备 键盘和标准输出设备显示器、对在外存磁盘上的文件和对 内存中指定的字符串存储空间进行输入/输出3个方面。 对标准输入设备和标准输出设备的输入/输出简称为标 准I/O,对在外存磁盘上文件的输入/输出简称为文件I/O, 对内存中指定的字符串存储空间的输入/输出简称为串I/O。
2019/2/22
第10章 输入/输出流
10.2 C++语言的基本流类体系
10.2.1 C++语言基本流类体系的构成
在C++语言系统中所有的流式输入/输出操作都是借 助类ios及其派生类对象实现的。与cout和cin相关的类名 为输出流类ostream和输入流类istream,它们都是类ios的 派生类。cin是类istream的一个对象;cout是类ostream的 一个对象,是编译器直接认识的系统级的对象。类 ostream和istream是在iostream头文件中声明的。 C++语言所支持的各种流式输入/输出的许多保留名 都是某个具体类的对象名或对象成员名。由类ios可派生 出许多派生类,而每个类的对象也不只是内定的cin和 cout,甚至可由用户定义对象用以支持不同要求的流式 输入/输出。
C++语言的I/O是以字节流的形式实现的,每一个C++ 语言编译系统都带有一个面向对象的I/O软件包,这就是 I/O流类库。其中,流是I/O流类的中心概念。
2019/2/22
第10章 输入/输出流
10.1 输入/输出流的概念
C++语言将数据在不同对象之间的输入/输出过程称 为流(Stream)。流既可以表示数据从内存传送到某 个设备中,即输出流;也可以表示数据从某个设备传 送到内存缓冲区,即输入流。 有的流既是输入流,又是输出流。流中的内容可以 是ASCII码字符、二进制形式的数据、图像和视频等 多媒体或其他形式的数据。 C++语言提供了两种类型的流:文本流和二进制流。
标准流通过重载运算符<<和>>执行输入和输出操作。 从流中获取数据的操作称为提取操作,运算符>>称为 提取运算符,向流中添加数据的操作称为插入操作, 运算符<<称为插入运算符,数据的输入与输出就是通 过I/O流来实现的。
2019/2/22
第10章 输入/输出流
10.2 C++语言的基本流类体系
10.2.1 C++语言基本流类体系的构成
2019/2/22
第10章 输入/输出流
10.2 C++语言的基本流类体系
10.2.1 C++语言基本流类体系的构成
3. 输出类ostream 输出类ostream负责提供输出(插入)操作的成员函数, 使输出流对象能通过其成员函数完成数据输出操作任务。 由输出类ostream派生出类ostream_withassign,而输出流 cout是由ostream_withassign定义的对象。 4. 输入/输出类iostream 类iostream是类istream和类ostream公有派生的,该类 并没有提供新的成员函数,只是将类istream和类ostream 组合在一起,以支持一个流对象既可完成输入操作,又 可完成输出操作。
2019/2/22
/
第10章 输入/输出流
10.1 输入/输出流的概念
文本流是一串ASCII码字符。如程序文件和文本文件 都是文本流,这种流可以直接存放的,这种流在 数据传输时不作任何变换。
实际上,流是程序输入或输出的一个连续的字节序 列,与内存缓冲区相对应。
10.2 C++语言的基本流类体系
10.2.1 C++语言基本流类体系的构成
1. 基类ios 基类ios派生出了输入类istream与输出类ostream,是所 有基本流类的基类。其他基本流类均由该类派生出来。 2. 输入类istream 输入类istream负责提供输入(提取)操作的成员函数, 使输入流对象能通过其成员函数完成数据输入操作任务。 由输入类istream派生出类istream_withassign,而输入流 cin是由istream_withassign定义的对象。
2019/2/22
第10章 输入/输出流
10.1 输入/输出流的概念
I/O流类库提供对象之间的数据交互服务,流类库预 定义了一批流对象,连接常用的外部设备,程序员可 以定义所需的I/O流对象,使用流类库提供的工作方式 实现数据传输。 流在使用前要被建立,使用后要被删除,还要使用 一些特定的操作从流中获取数据或向流中添加数据。
流是C++流类库用继承方法建立起来的一个I/O类库, 它具有两个平行的基类即类streambuf和类ios,所有其他 的流类都是从他们直接或间接地派生出来的。 其中类streambuf提供对缓冲区的低级操作,包括设置 缓冲区,缓冲区指针操作,向缓冲区存/取字符等; 类ios及其派生类提供用户使用流类的接口,支持对 streambuf 的缓冲区I/O的格式化或非格式化转换。
第10章 输入/输出流
10.2 C++语言的基本流类体系
10.2.1 C++语言基本流类体系的构成
ios
istream iostrea m
ostream
istream_withassign
ostream_withassign
图10.1 I/O流类库的类层次
2019/2/22
第10章 输入/输出流
2019/2/22
第10章 输入/输出流
10.2 C++语言的基本流类体系
10.2.2标准输入/输出流
标准I/O流是C++语言预定义的对象,提供内存与 外部设备进行数据交互功能,对数据进行解释和传输, 提供必要数据缓冲。C++语言的I/O流类库中预先定 义了4个标准流对象:cin、cout、cerr和clog,它们不 是C++语言中的关键字。只要程序中包含了头文件 iostream,编译器调用相应的构造函数产生这4个标准 流对象,用户在程序中就可以直接使用了。
《C++程序设计基础教程》
第 10 章
输入/输出流
战略决定一切、执行决定一切、细 节决定一切!
第10章 输入/输出流
本章内容
输入/输出流的概念
1
C++语言的基本流类体系 2 文件的输入/输出
程序举例
2019/2/22
3
4
第10章 输入/输出流
数据的输入和输出(简写为I/O)包括对标准输入设备 键盘和标准输出设备显示器、对在外存磁盘上的文件和对 内存中指定的字符串存储空间进行输入/输出3个方面。 对标准输入设备和标准输出设备的输入/输出简称为标 准I/O,对在外存磁盘上文件的输入/输出简称为文件I/O, 对内存中指定的字符串存储空间的输入/输出简称为串I/O。
2019/2/22
第10章 输入/输出流
10.2 C++语言的基本流类体系
10.2.1 C++语言基本流类体系的构成
在C++语言系统中所有的流式输入/输出操作都是借 助类ios及其派生类对象实现的。与cout和cin相关的类名 为输出流类ostream和输入流类istream,它们都是类ios的 派生类。cin是类istream的一个对象;cout是类ostream的 一个对象,是编译器直接认识的系统级的对象。类 ostream和istream是在iostream头文件中声明的。 C++语言所支持的各种流式输入/输出的许多保留名 都是某个具体类的对象名或对象成员名。由类ios可派生 出许多派生类,而每个类的对象也不只是内定的cin和 cout,甚至可由用户定义对象用以支持不同要求的流式 输入/输出。
C++语言的I/O是以字节流的形式实现的,每一个C++ 语言编译系统都带有一个面向对象的I/O软件包,这就是 I/O流类库。其中,流是I/O流类的中心概念。
2019/2/22
第10章 输入/输出流
10.1 输入/输出流的概念
C++语言将数据在不同对象之间的输入/输出过程称 为流(Stream)。流既可以表示数据从内存传送到某 个设备中,即输出流;也可以表示数据从某个设备传 送到内存缓冲区,即输入流。 有的流既是输入流,又是输出流。流中的内容可以 是ASCII码字符、二进制形式的数据、图像和视频等 多媒体或其他形式的数据。 C++语言提供了两种类型的流:文本流和二进制流。
标准流通过重载运算符<<和>>执行输入和输出操作。 从流中获取数据的操作称为提取操作,运算符>>称为 提取运算符,向流中添加数据的操作称为插入操作, 运算符<<称为插入运算符,数据的输入与输出就是通 过I/O流来实现的。
2019/2/22
第10章 输入/输出流
10.2 C++语言的基本流类体系
10.2.1 C++语言基本流类体系的构成
2019/2/22
第10章 输入/输出流
10.2 C++语言的基本流类体系
10.2.1 C++语言基本流类体系的构成
3. 输出类ostream 输出类ostream负责提供输出(插入)操作的成员函数, 使输出流对象能通过其成员函数完成数据输出操作任务。 由输出类ostream派生出类ostream_withassign,而输出流 cout是由ostream_withassign定义的对象。 4. 输入/输出类iostream 类iostream是类istream和类ostream公有派生的,该类 并没有提供新的成员函数,只是将类istream和类ostream 组合在一起,以支持一个流对象既可完成输入操作,又 可完成输出操作。
2019/2/22
/
第10章 输入/输出流
10.1 输入/输出流的概念
文本流是一串ASCII码字符。如程序文件和文本文件 都是文本流,这种流可以直接存放的,这种流在 数据传输时不作任何变换。
实际上,流是程序输入或输出的一个连续的字节序 列,与内存缓冲区相对应。
10.2 C++语言的基本流类体系
10.2.1 C++语言基本流类体系的构成
1. 基类ios 基类ios派生出了输入类istream与输出类ostream,是所 有基本流类的基类。其他基本流类均由该类派生出来。 2. 输入类istream 输入类istream负责提供输入(提取)操作的成员函数, 使输入流对象能通过其成员函数完成数据输入操作任务。 由输入类istream派生出类istream_withassign,而输入流 cin是由istream_withassign定义的对象。
2019/2/22
第10章 输入/输出流
10.1 输入/输出流的概念
I/O流类库提供对象之间的数据交互服务,流类库预 定义了一批流对象,连接常用的外部设备,程序员可 以定义所需的I/O流对象,使用流类库提供的工作方式 实现数据传输。 流在使用前要被建立,使用后要被删除,还要使用 一些特定的操作从流中获取数据或向流中添加数据。
流是C++流类库用继承方法建立起来的一个I/O类库, 它具有两个平行的基类即类streambuf和类ios,所有其他 的流类都是从他们直接或间接地派生出来的。 其中类streambuf提供对缓冲区的低级操作,包括设置 缓冲区,缓冲区指针操作,向缓冲区存/取字符等; 类ios及其派生类提供用户使用流类的接口,支持对 streambuf 的缓冲区I/O的格式化或非格式化转换。