网站大量收购闲置独家精品文档,联系QQ:2885784924

[轻松学C++之输入.pptx

  1. 1、本文档共90页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[轻松学C之输入

第14章 输入/输出流应用程序的输入/输出使用非常频繁。一般而言,输入是为了实现程序与用户的交流,而输出是为了返回结果或给出提示信息。本节将详细介绍C++中输入/输出流的有关知识。14.1 输入/输出流的引入如果一个应用程序没有输入和输出,那它也就没有应用价值。在C++中,输入/输出功能是通过调用该操作系统的I/O库来实现的。14.1.1 C语言中输入/输出缺陷C语言中的输入/输出大都是由函数scanf()和printf()来实现的。具体实现过程,如图14-1所示。图14-1 函数scanf()和printf()在图14-1的代码中,使用C语言的标准I/O库函数scanf()和printf()来实现程序的输入/输出,其必须添加头文件stdio.h,否则编译将无法通过。既然使用C语言I/O库函数也能够很好地完成程序的输入/输出,那为什么还要引入C++的输入/输出流呢?这是因为使用C语言I/O库函数存在几个缺陷,如图14-2所示。图14-2 C语言I/O库函数存在的缺陷14.1.2 输入/输出流简介C++除支持C的输入/输出系统外,还提供了自己的输入/输出系统,并通过重载运算符“”和“”来支持类和对象的输入/输出。C++的输入/输出系统是以字节流的形式实现的。C++中的流是指数据从一个对象传递到另一个对象的操作,如图14-3所示。图14-3 C++中的流如果数据的传递是在设备之间进行,这种流就称为I/O流。C++专门内置了一些供用户使用的类,在这些类中封装了可以实现输入/输出操作的函数,这些类统称为I/O流类。流具有方向性,与输入设备相关联的流称为输入流,与输出设备相关联的流称为输出流,统称为输入/输出流,如图14-4所示。图14-4 输入/输出流C++没有使用C的输入/输出函数库,而是使用iostream类库。iostream是通过类的继承,以及类的成员函数的重载来实现的。iostream类库使用统一的函数接口操作标准I/O、文件、存储块等输入/输出设备。同时,iostream类库具有很好的扩展性,用户可通过重载对其进行扩展。14.1.3 输入/输出流类层次C++的输入/输出流类库是用派生方法建立起来的,它有两个平行的基类,即streambuf和ios。其他的流类都是从这两个基类直接或间接派生的。1.streambuf类streambuf类是带有缓冲区的流类库,它的作用是提供物理设备的接口、缓冲区或处理流的通用方式。当其用做流类库中的基类时,派生出三个流类,如图14-5所示。图14-5 streambuf类的派生类streambuf类使用的缓冲区由一个字符序列和输入/输出缓冲区指针组成,指针指向字符被取出或插入的位置。通常情况下,均使用图14-5中的三个派生类,很少直接使用streambuf类。2.ios类ios类及其派生类为用户提供了使用流类的接口,它们均有一个指针指向streambuf类。ios类及其派生类使用streambuf来完成对错误的格式化输入/输出的检查,并且支持对streambuf类的缓冲区进行I/O时的格式化或非格式化转换。ios作为流类库中的基类,可以派生出许多类,这些类在实际的程序应用中非常频繁。其类的层次关系如图14-6所示。图14-6 ios类及其派生类的层次关系图14-6中的ios、istream、ostream和带缓冲区的流类库streambuf类构成了C++中iostream输入/输出功能的基础。流是一个抽象的概念,实际进行I/O操作时,必须将流与一种具体的物理设备联系起来。例如,将流和键盘联系起来,当从该流中提取数据时,就是从键盘输入数据。用户也可以用istream、ostream等类声明流对象,形式如图14-7所示。图14-7 用istream、ostream等类声明流对象使用流类库的程序,不但可以识别标准的I/O设备,还可以重载运算符“”和“”,使程序识别用户自定义的类型,从而极大地提高了程序的可靠性和灵活性。14.2 标准输入/输出流C++将一些常用的流类对象,如键盘输入、显示器输出、程序运行出错输出、打印机输出等,定义并内置在系统中,供用户直接使用。这些系统内置的用于设备间传递数据的对象称为标准流类对象,共有4个,如图14-8所示。在一些系统中,不需要关闭文件,当程序结束时,文件会自动关闭。但是,关闭文件是一个好的习惯。而且,如果要用相同的文件流变量打开另外的文件,必须先关闭用文件流变量打开的文件。图14-8 4个标准流类对象本节只介绍cin和cout对象的使用,有关cerr和clog对象的使用不做讲解。14.2.1 标准输出流对象标准输出流对象是采用cout对象将输出流中的数据显示在屏幕上,称为输出操作。使用cout对象时要结合流输出运算符“”,也叫流插入运

文档评论(0)

wendan118 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档