- 1、本文档共30页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
格式化输入和输出的简单应用.ppt
C++面向对象程序设计 第8章 输入输出流 (Input/Output Stream) 本章内容 流以及流类库结构 非格式化的输入和输出 格式化的输入和输出 文件的输入和输出 8.1 流以及流类库结构 流的概念 流类库 简明与可读性直观地讲,C++提供的I/O函数更为简明,增加了可读性。 类型安全(type safe)所谓类型安全,是指在进行I/O操作时不应对参加输入/输出的数据在类型上发生不该有的变化。 易于扩充在C++的I/O系统的流类的定义中,把C语言中的左、右移位运算符“”和“”,通过运算符重载方法,定义为插入(输出)和提取(输入)运算符。 8.2 非格式化的输入和输出 非格式化输入/输出是指按系统预定义的格式进行的输入/输出。与cin和cout的使用方法类似,cerr和clog类均用来输出错误信息,它们的使用方法与cout基本相同,区别在于它们所关联的设备始终是控制显示器,而不像cout那样随着关联设备的改变而变化。 8.3 格式化的输入和输出 ios类中定义的格式控制标志 操作符(Manipulator) 格式化输入和输出的简单应用 8.4 文件的输入和输出 文件与流 文件的打开和关闭 读/写文本文件 文件是计算机的基本概念,一般指存储于外部介质上的信息集合。在程序中,文件的概念不单是狭义地指硬盘上的文件,所有的有输入/输出功能的设备,例如键盘、控制台、显示器、打印机都被视为文件。 为了对一个文件进行I/O操作,即读/写操作,必须首先打开文件,I/O操作完成后再将其关闭。对于C++的I/O系统来说,打开工作包括在流(对象)的创建工作之中。流的创建由对应流类的构造函数完成,其中包括把创建的流与要进行读/写操作的文件名联系起来,并打开这个文件。 文本文件的读/写 一旦文件被成功打开,文件中的文本数据信息的读/写操作与控制台文件信息的输入/输出操作就完全一致。 二进制文件的读/写 任何文件中无论包含的是文本数据还是二进制数据,都能以文本方式或二进制方式打开。也就是说,文件的打开方式并不能保证文件数据的形式和含义,而确保文件数据的形式和含义的关键是如何对文件的数据进行读/写。 * C++输入/输出中的核心对象是流(stream),表示一个字节序列,流是程序设计对I/O系统中对象之间的数据传输的一种抽象,它负责在数据的生产者和消费者之间建立联系,并管理数据流动。流的基本操作包括读入(reading from)和写出(writing to),也即输入和输出,从流中获取数据的过程称为输入流,向流中添加数据的过程称为输出流。 图8-2 I/O流类层次图 表8-1 部分I/O流类列表 流类库是按面向对象方法组织的许多个流类的类层次集合,它主要由两个流类层次streambuf和ios组成,streambuf类及其子类主要完成信息通过缓冲区的交换;ios类及其子类是在streambuf类实现的缓冲区信息交换的基础上,增加了各种格式化的输入/输出控制方法。 图8-3 流类库的基本结构 图8-5 流缓冲区类的派生关系 Declares basic_filebuf and the fstream classes fstream Declares basic_stringbuf and the stringstream classes sstream Declares parameterized manipulators iomanip Basic_ostream ostream Declares basic_istream and basic_iostream istream Declares basic_streambuf streambuf Declares ios_base and basic_ios ios Declares cin,cout,etc. iostream Contains forward declarations iosfwd Partial Description Header 【例8-3】 控制输出精度范例。#include iostream#include iomanipusing namespace std;int main(){ double values[]={1.23,35.36,657.6,778.2}; char* names[]={Zoot,Jimmy,A1,Stan}; for(int i=0;i4;i++) coutsetiosflags(ios::left)setw(6)names[i] resetiosflags(ios::left)setw(6) setiosflags(ios::fixed)
您可能关注的文档
- 数据库应用实验报告范例-数据库技术应用基础.doc
- 数据库系统概论第二章v2.ppt.ppt
- 数据库结构和代码标准见(附件5).doc
- 数据的排序和筛选-祁县第二中学校.doc
- 数据的高级筛选.ppt
- 数的认识总复习.ppt.ppt
- 数组和广义表安工大计算机学院.ppt
- 文件-数学帮Math110.ppt
- 文件体系的运行-山东电子职业技术学院.ppt
- 文件的物理结构.ppt.ppt
- 2025年中山市沙溪镇人民政府所属事业单位招聘11人笔试备考题库及参考答案详解一套.docx
- 2025年中山市横栏镇人民政府所属事业单位第二期招聘笔试高频难、易错点备考题库及参考答案详解一套.docx
- 2025年中山市横栏镇人民政府所属事业单位第二期招聘笔试高频难、易错点备考题库含答案详解.docx
- 2025年中山市阜沙镇人民政府所属事业单位招聘笔试高频难、易错点备考题库及完整答案详解1套.docx
- 2025年中山市阜沙镇人民政府所属事业单位招聘笔试高频难、易错点备考题库参考答案详解.docx
- 2025年中山市阜沙镇人民政府所属事业单位招聘笔试备考题库附答案详解.docx
- 2025年中山市阜沙镇人民政府所属事业单位招聘笔试高频难、易错点备考题库附答案详解.docx
- 2025年中山市阜沙镇人民政府所属事业单位招聘笔试备考题库附答案详解.docx
- 2025年中山市阜沙镇人民政府所属事业单位招聘笔试备考题库及答案详解一套.docx
- 2025年中山市阜沙镇人民政府所属事业单位招聘笔试备考题库及完整答案详解1套.docx
文档评论(0)