第17章输入输出流.ppt
《第17章输入输出流.ppt》由会员分享,可在线阅读,更多相关《第17章输入输出流.ppt(22页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第十七章 输入/输出流杨章伟杨章伟e-mail:1-2课程内容安排课程内容安排C+中引入标准输入中引入标准输入/输出流的原因。输出流的原因。常用标准输入常用标准输入/输出流对象。输出流对象。输入输入/输出流成员函数的使用和格式控制。输出流成员函数的使用和格式控制。1-3输入输入/输出流简介输出流简介 C+完完全全支支持持C的的输输入入/输输出出系系统统,但但由由于于C的的输输入入/输输出出系系统统不不支支持持类类和和对对象象,所所以以C+又又提提供供了了自自己己的的输输入入/输输出出系系统统,并并通通过过重重载载运运算算符符“”来来支支持持类类和和对对象象的的输输入入/输输出出。C+的的输输入
2、入/输输出出系系统统是是以以字字节节流流的的形式实现的。形式实现的。C+没没有有使使用用C的的输输入入/输输出出函函数数库库,而而是是使使用用iostream类类库库。iostream是是通通过过类类的的继继承承,以以及及类类的的成成员员函函数数的的重重载载来来实实现现的的,从从而而使使iostream类类库库使使用用统统一一的的函函数数接接口口操操作作标标准准I/O、文文件件、存存储储块块等等输输入入/输输出出设设备备。同同时时,iostream类类库库具具有有很很好好的的扩扩展展性性,用用户户可可通通过过重重载载对对其其进行扩展。进行扩展。1-4标准输入标准输入/输出流输出流 C+将一些常
3、用的流类对象,如键盘输入、显示器输出、将一些常用的流类对象,如键盘输入、显示器输出、程序运行出错输出、打印机输出等,定义并内置在系统程序运行出错输出、打印机输出等,定义并内置在系统中,供用户直接使用。这些系统内置的用于设备间传递中,供用户直接使用。这些系统内置的用于设备间传递数据的对象称为标准流类对象,共有数据的对象称为标准流类对象,共有4个。个。cin对象:与标准输入设备相关联的标准输入流。对象:与标准输入设备相关联的标准输入流。cout对象:与标准输出设备相关联的标准输出流。对象:与标准输出设备相关联的标准输出流。cerr对象:与标准错误输出设备相关联的非缓冲方式的对象:与标准错误输出设备
4、相关联的非缓冲方式的标准输出流。标准输出流。clog对象:与标准错误输出设备相关联的缓冲方式的标对象:与标准错误输出设备相关联的缓冲方式的标准输出流。准输出流。1-5输入输入/输出流成员函数输出流成员函数 C+中中,输输入入/输输出出流流除除了了可可以以使使用用前前面面介介绍绍的的输输入入/输输出出流流对对象象外外,类类istream还还有有三三个个从从流流中中进进行行非非格格式式化化抽抽取取的的成成员员函函数数:get()、getline()、put()、read()和和write()函函数数及及其其他成员函数。他成员函数。1-6输入输入/输出格式控制输出格式控制 C+仍仍可可使使用用C中中
5、的的printf()和和scanf()进进行行格格式式化化控控制制。同同时时,C+又又提提供供了了两两种种格格式式化化控控制制的的方方法法:一一种种是是使使用用ios类类中中的的有有关关格格式式控控制制的的成成员员函函数数,另另一一种种是是使使用用被称为格式控制符的特殊类型的函数。被称为格式控制符的特殊类型的函数。一一般般来来说说,ios类类的的成成员员函函数数进进行行格格式式控控制制主主要要是是通通过过对对格格式式状状态态字字、域域宽宽、填填充充字字符符和和输输出出精精度度操操作作来来完完成成的。的。使使用用ios类类的的成成员员函函数数控控制制输输入入/输输出出格格式式时时,每每个个函函数
6、数的的调调用用都都要要写写一一条条语语句句,它它们们还还不不能能直直接接嵌嵌入入到到输输入入/输输出出语语句句中中,这这使使得得使使用用很很不不方方便便。为为此此,C+由由提提供供了了另另外外一一种种输输入入/输输出出格格式式的的控控制制方方法法,即即使使用用一一种种称称为格式控制符的特殊函数。为格式控制符的特殊函数。1-7重载输出运算符重载输出运算符“”重载输出运算符重载输出运算符“”也称为插入运算符,用于用户自也称为插入运算符,用于用户自定义类型数据的输出。重载运算符定义类型数据的输出。重载运算符“”的一般形式为:的一般形式为:ostream&operator”也称为提取运算符,用于用户自
7、定义也称为提取运算符,用于用户自定义类型数据的输入。定义运算符类型数据的输入。定义运算符“”重载函数的一般形式为:重载函数的一般形式为:istream&operator(istream&stream,类名类名 对象名对象名)/操作代码操作代码return stream;其中,第一个参数其中,第一个参数stream是对是对istream对象的引用,必须是对象的引用,必须是输入流,它可以是其他合法的标识符,但必须与输入流,它可以是其他合法的标识符,但必须与return后面后面的标识符相同。第二个参数是一个引用,前面的的标识符相同。第二个参数是一个引用,前面的“&”不能省不能省略。略。重载输入运算符
8、重载输入运算符“”1-9命名空间命名空间 命名空间是命名空间是C+新增加的一种功能,在新增加的一种功能,在C语言中没有命名空语言中没有命名空间的概念。命名空间的主要作用是为了防止标识符名称冲间的概念。命名空间的主要作用是为了防止标识符名称冲突,将逻辑上相关的的标识符置于同一命名空间中。在突,将逻辑上相关的的标识符置于同一命名空间中。在C+中,不仅各种库函数和类使用命名空间来界定,用户中,不仅各种库函数和类使用命名空间来界定,用户也可以定义自己的命名空间。也可以定义自己的命名空间。命名空间是为解决命名空间是为解决C+中标识符的命名冲突而服务的。解决中标识符的命名冲突而服务的。解决的办法就是将将逻
9、辑上相关的标识符置于同一命名空间中。的办法就是将将逻辑上相关的标识符置于同一命名空间中。1-10定义命名空间定义命名空间 C+中,有两种形式的命名空间:有名命名空间和无名(匿中,有两种形式的命名空间:有名命名空间和无名(匿名)命名空间。这两种命名空间的定义格式分别如下。名)命名空间。这两种命名空间的定义格式分别如下。有名命名空间:有名命名空间:namespace 命名空间名命名空间名 声明和定义序列声明和定义序列无名(匿名)命名空间:无名(匿名)命名空间:namespace声明和定义序列声明和定义序列1-11使用命名空间使用命名空间 由于命名空间的定义中包含了许多成员的定义,那么在实际由于命名
10、空间的定义中包含了许多成员的定义,那么在实际的程序设计中,如何来使用命名空间中的这些定义呢?标的程序设计中,如何来使用命名空间中的这些定义呢?标准准C+给出了三种引用命名空间内成员的方法,分别是使给出了三种引用命名空间内成员的方法,分别是使用作用域运算符、用作用域运算符、using指令和指令和using声明声明.1-12小结小结 本章主要介绍了本章主要介绍了C+的输入的输入/输出流的相关内容。首先由输出流的相关内容。首先由C语言中的语言中的输入输入/输出函数输出函数scanf()和和printf()的缺陷引出的缺陷引出C+中的输入中的输入/输出输出流,接着详细讲解了流,接着详细讲解了C+的标准
11、输入的标准输入/输出流的相关概和使用,输出流的相关概和使用,以及以及C+的输入的输入/输出格式控制。此外,本章就输入输出格式控制。此外,本章就输入/输出运算符输出运算符“”和和“”进行了重载,使其能够进行类对象的输入进行了重载,使其能够进行类对象的输入/输出。输出。本章最后对命名空间的相关概念和使用进行了讲述。本章最后对命名空间的相关概念和使用进行了讲述。1-13习题习题【题目【题目248】分析下列程序的输出结果。分析下列程序的输出结果。#include#include#include const int N=80;int main()char bufN;ostrstream out1(buf
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第17章 输入输出流 17 输入输出
限制150内