- 1、本文档共20页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第15章 输入输出体系 C++系统为开发者提供了一套完整的输入/输出(I/O)操作体系,这些I/O操作可以操作C++的内置类型的数据,也可以操作用户自定义类型的数据,并且这些操作都是类型安全的。 15.1 流的概念 C++继承了C语言的I/O,但C语言风格的I/O存在一些弊端。C++给出了全新的解决方案,其I/O操作是以字节流的形式实现的。在C++中存在众多的流操作类,这些类形成了一个完善的I/O操作体系。 15.1.1 C语言中I/O的弊端 C++为了兼容C语言,保留了很多C语言的方法,以使之前用C语言编写的程序依然能在C++环境下运行。在输入输出方面,保留了C语言的scanf和printf等函数进行数据的输入和输出。在C语言中,用scanf和printf等函数进行输入输出时,是很难保证所输入输出的数据是可靠安全的。因为它不会对数据类型进行严格的检查,从而可能导致一些错误的输入输出。 15.1.2 流类 在C++中,输入输出流被定义为一系列的类,这些类被称为流类(stream class),全部被包含在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.2 流格式化输出 在输出数据时,往往需要将数据按照一定的格式进行输出,以使阅读者更容易理解。例如,对内存地址的输出一般用十六进制显示;对小数的输出通常需要保留一定的小数位。 1.流控制符 2.流类的格式控制成员函数 15.3 重载流运算符 C++的输出输入流运算符,默认只能处理标准的内置对象。如果需要其支持复合数据类型或者自定义类型,就必须重载流运算符。 15.3.1 流运算符重载概述 运算符重载有两种形式:重载为成员函数或者是重载为友元函数。但由于重载插入运算符和提取运算符时,其左边的参数是流,而右边的参数是类的对象,根据前面学习的运算符重载的知识,只能用友元函数的方式去重载插入运算符和提取运算符。 15.3.2 插入运算符重载 插入运算符重载的一般格式如下。 ostream operator(ostream os,const T t) { //函数体 return os; } 15.3.3 提取运算符重载 提取运算符重载的一般格式如下。 istream operator(istream is , const T t); //函数体 return is; } 15.4 文件操作 为了能长期保存数据,一般将数据存储在文件中。C++中对文件的读写也是通过流来操作的。其中,操作文件的流称为文件流。同时,C++也支持C方式的文件操作。 15.4.1 文件概述 文件是一组有限且相关的数据组成的有序集合。“有限”指文件中的数据是有最大限度的,“相关”是指这些数据是有关联性的。如果独立起来,这些数据就没有实质的意义,而组合起来则能表现一定的含义。 1、文本文件 2、二进制文件 15.4.2 文件操作基础 在对文件进行I/O操作时,主要有如图所述的3个步骤。 15.4.3 打开和关闭文件 常用的文件流对象有ifstream、ofstream和fstream。ifstream为输入文件流对象;ofstream为输出文件流对象;fstream为输入文件流对象。使用这些对象时,需要包含头文件fstream。在打开文件前,先根据所要进行的操作声明流对象。 15.4.4 文本文件输入输出 向文本文件输出数据有以下两种方法。 (1)使用插入操作符“”,只针对C++标准类型。 (2)调用成员函数put( )。 15.4.5 二进制文件输入输出 二进制文件不是按照字符形式存储到文件中的,所以读取文本文件的函数不能应用在二进制文件中。向二进制文件写入数据是利用流类ostream的write( )函数来实现的,其原型如下。 ostream write(const char * buffer ,int len); 15.4.6 文件定位 与文件相联系的指针有两个,一个是读取指针,它指向文件当前要读取的数据的位置;另一个是写入指针,它指向现在正要写入数据的位置。这些指针在操作时,系统会自动控制。上面介绍的读写操作都是顺序对文件进行
您可能关注的文档
- 第4章 Web应用程序开发的统一建模语言(UML)(1).ppt
- 第7章 输入输出系统(改).ppt
- 第9章OO引论.ppt
- 第9章UML统一塑模语言.ppt
- 第9章UML系统分析现设计教程教案.ppt
- 第4章 安全审计与入侵检测20101010.ppt
- 第二章 安装Android开发工具.ppt
- 第7章 统一建模语言UML概述.ppt
- 第4章 安全网络支付1.ppt
- 第7章 图1-图的定义和存储.ppt
- 2025年自考专业(计算机信息管理)试题预测试卷及完整答案详解【精选题】.docx
- 2025年自考专业(计算机信息管理)试题预测试卷及答案详解(全国通用).docx
- 2025年自考专业(计算机信息管理)试题预测试卷及完整答案详解【全优】.docx
- 《旅游职业礼仪》课件项目五:职业服务礼仪 .pptx
- 2025年自考专业(计算机信息管理)试题预测试卷及参考答案详解(考试直接用).docx
- 幼儿园心理健康标准教案.pptx
- 2025年自考专业(计算机信息管理)试题预测试卷(培优)附答案详解.docx
- 2025年自考专业(计算机信息管理)试题预测试卷附完整答案详解(全国通用).docx
- 2025年自考专业(计算机信息管理)试题预测试卷附参考答案详解(预热题).docx
- 2025年自考专业(计算机信息管理)试题预测试卷含答案详解(能力提升).docx
文档评论(0)