轻松学章输入输出体系.pptxVIP

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

第15章输入输出体系C++系统为开发者提供了一套完整的输入/输出(I/O)操作体系,这些I/O操作可以操作C++的内置类型的数据,也可以操作用户自定义类型的数据,并且这些操作都是类型安全的。通过本章的学习,读者可以了解C++类库中的常用流类,理解输入输出的含意,掌握输入/输出的格式控制、流运算符的重载、文件操作和输入输出在C++程序中的应用。

15.1流的概念C++的I/O流是由若干字节组成的字节序列,称为字节流。字节流中的数据可以是多种形式的,包括二进制数据、ASCII字符、数字图象信息、数字化视频和音频等。在进行数据传输时,数据会被从一个对象传送到另一个对象中,这些对象包括内存、输出设备(如屏幕、打印机、磁盘文件等)和输入设备(如键盘、磁盘文件、扫描仪等)。当进行输入操作时,字节流是从输入设备流向内存的;在进行输出操作时的概念,字节流是从内存输出到输出设备的。

15.1.1C语言中I/O的弊端C++为了兼容C语言,保留了很多C语言的方法,使之前用C语言编写的程序依然能在C++环境下运行。在输入输出方面,保留了C语言的scanf和printf等函数进行数据的输入和输出。在C语言中,用scanf和printf等函数进行输入输出时,很难保证所输入输出的数据是可靠安全的。因为它不会对数据类型进行严格的检查,从而可能导致一些错误的输入输出。

15.1.2流类在C++中,输入输出流被定义为一系列的类,这些类被称为流类(streamclass),全部被包含在I/O类库中。C++的输入与输出包括以下3方面的内容。标准I/O:对系统指定的标准设备(如显示器,打印机等)的输入和输出。文件I/O:对外存磁盘(或外存储设备)文件进行输入和输出。内存I/O(串I/O):对内存中的空间进行输入和输出。

15.2流对象和格式化输出C++在头文件iostream中预定义了流对象,方便开发者使用。在对数据进行输出时,有时需要对输出的格式进行控制。C++提供了丰富的控制符和函数对格式进行控制。

15.2.1预定义的流对象在一般的C++程序中,都会包含iostream头文件,因为它包含了输入输出操作所需要的基本信息。在iostream头文件中,不仅定义了许多相关的类(ios、istream、ostream、iostream、istream_withassign、stream_withassign和iostream_withassign等),还定义了4种常用的流对象,如表15-2所示。

15.2.2流格式化输出在输出数据时,往往需要将数据按照一定的格式进行输出,以使阅读者更容易理解。例如,对内存地址的输出一般用十六进制显示;对小数的输出通常需要保留一定的小数位。对输出数据进行格式化称为流格式化输出。在前面的学习中,输出数据时并没有设定数据格式,这时候系统会根据输出数据的数据类型而输出对应的默认格式。如果需要控制流输出的格式,有两种方法:一种是使用流格式控制符;另一种是利用流类的相关成员函数进行控制。

15.3重载流运算符C++的输出输入流运算符,默认只能处理标准的内置对象。如果需要其支持复合数据类型或者自定义类型,就必须重载流运算符。

15.3.1流运算符重载概述运算符重载有两种形式:重载为成员函数或者重载为友元函数。但由于重载插入运算符和提取运算符时,其左边的参数是流,而右边的参数是类的对象,根据前面学习的运算符重载的知识,只能用友元函数的方式去重载插入运算符和提取运算符。在C++内部实现中,也是通过重载“”和“”来实现对标准数据类型的输入输出的(“”和“”两个运算符,在C++中本来的含义是左位移运算符和右位移运算符)。在istream和ostream类中分别有一组成员函数对位移运算符“”和“”进行重载,以便能用它输入或输出各种标准数据类型的数据。

15.3.2插入运算符重载插入运算符重载的一般格式如下。ostreamoperator(ostreamos,constTt){//函数体returnos;}

15.3.3提取运算符重载提取运算符重载的一般格式如下。istreamoperator(istreamis,constTt);//函数体returnis;}文件操作为了能长期保存数据,一般将数据存储在文件中。C++中对文件的读写也是通过流来操作的。其中,操作文件的流称为文件流。同时,C++也支持C方式的文件操作。

15.4.1文件概述文件是一组有限且相关的数据组成的有序集合。“有限”指文件中的数据是有最大限度的,“相关”是指这些数据是有关联性的。如果独立起来,这些数据就没有实质的意义,而组合起来则能表现一定的含义。每一个文件一般都有一个名称,称为文件名。在前面,文件的概念经常被使

文档评论(0)

lflebooks + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档