- 6
- 0
- 约1.75万字
- 约 42页
- 2016-12-04 发布于河南
- 举报
c第十四章ppt
第14章 输入/输出流类库 输入/输出:程序与计算机外设之间的数据交换。 输入:程序从外设接收数据。 输出:程序将数据输出到外设。 C++语言本身没有专门的输入/输出语句,但C++的编译系统通常都提供输入/输出流类库,用于用户输入/输出。 14.1 概述流 数据的输入/输出以字节为单位,依次逐个进行。 数据的字节序列称为字节流,简称流(Stream)。按对字节内容的解释方式分,字节流分为字符流(也称文本流)和二进制流。 字符流:将字节流的每个字节按ASCII字符解释。数据传输时需做转换,效率较低,但字符流可直接编辑、显示或打印,字符流文件通行于各类计算机。 例如int型数值1234567在内存中占4字节,但输出前要先转换成数值串“1234567”后,才能输出。反之亦然。 源程序文件和文本文件都是字符流。 二进制流:将字节流的每个字节按二进制方式解释。数据传输时不做转换,效率高,但异类计算机对数据的二进制存放格式存在差异,且无法人工阅读,二进制流文件可移植性较差。 输入/输出流的类体系称为流类,流类的实现称为流类库。 文件 文件:相关数据的字节序列集合。 计算机中的程序、数据、文档常以文件形式存于外存。 输入/输出设备具有字节流特征,也是文件。例如键盘是输入文件,显示器、打印机是输出文件。 不同的文件所允许的操作可能不同。例如对于磁盘文件,可以将数据写入文件,也可以将数据从文件中取出;而对于打印机文件,只能将数据写入,而不能从打印机文件中取出数据。 文件名:为文件取的名字,以区别不同的文件。 文件名通常由使用标识符,但不同的计算机系统,对文件名的组成规则有所不同,参见有关操作系统。 程序可通过文件名来使用文件。 缓冲 缓冲区:系统在主存中开辟的、用来临时存放输入/输出数据的区域。如先将输入的数据送到缓冲区,再从缓冲区中取出。 缓冲区的作用:因输入/输出设备的速度比CPU慢得多,若CPU直接与外设交换数据,必然占用大量CPU时间,降低CPU的使用效率。使用缓冲后,CPU只要从缓冲区中取数据或者把数据写入缓冲区,而不必等待外设的具体输入/输出操作,显著提高了CPU的使用效率。 按在缓冲区中是否立即处理,流分为缓冲流和非缓冲流。常用缓冲流,仅在特殊场合,才用非缓冲流。 非缓冲流:一旦数据送入缓冲区,立即处理。 缓冲流:仅当缓冲区满或当前送入的数据为新的一行字符时,系统才对流中的数据进行处理(称为刷新)。 14.2 基本I/O流类体系概述 基本I/O流类体系:如图所示,在iostream.h中说明,支持C++输入/输出程序设计。 预定义的标准流与提取和插入运算符 预定义的标准流对象:cin、cout、cerr和clog。 需在程序中包含头文件“iostream.h”方可使用。 cin为标准输入流,缺省代表键盘。 cout为标准输出流,缺省代表显示器。 cerr和clog为标准错误信息输出流,缺省代表显示器。 cerr为非缓冲流,其余为缓冲流。 提取运算符:用于从流中提取一个字节序列。 插入运算符:用于向流中插入一个字节序列。 cin使用提取运算符实现数据的输入,其余三个标准流使用插入运算符实现数据的输出。 输入流自动将要输入的字节序列形式的数据变换成计算机内部形式的数据(二进制数或ASCII)后,再赋给变量,变换后的格式由变量的类型确定。输出流自动将要输出的数据变换成字节序列后,送到输出流中。 例14.1 使用流cerr和clog实现数据的输出。 #includeiostream.h void main(void) { float a,b; cerr输入a和b的值:\n; cinab; if(b!=0) couta/b=a/b\n; else cerr除数为零!\n; } cout、cerr和clog的用法相同但作用不同。 cout的输出可重定向(请参见有关操作系统的介绍)。 cerr和clog的输出不可重定向。 clog为缓冲流,输出的数据不能及时显示。 通常将程序中的提示信息(输入提示和出错提示等)用cerr输出,结果数据用cout输出,而clog很少使用。 流的格式控制 格式化输入/输出仅用于文本流,而二进制流是原样输入输出,不必做格式化转换。“iomanip.h”中预定义了13个格式控制函数,用于控制输入/输出数据的格式,如下表所示。 例14.2 用格式控制函数指定输出数据的域宽和数制。 #includeiostream.h #includeiomanip.h ? void main(void) { int a=256,b=128; cout setw(8) ab=b\n; cout hex ab= dec b\n; } 流的错误处理 state是类ios中说明的整型数据成员,用
您可能关注的文档
最近下载
- 来院人员工资核定表.doc VIP
- 2025年换电模式下的电动汽车充电设施布局与运营优化研究报告.docx VIP
- 2025年充电与换电:新能源汽车换电模式与充电设施协同发展研究报告.docx VIP
- 2025年新疆维吾尔自治区高考政治真题含解析.docx VIP
- 混合能源微电网经济调度方法研究.docx VIP
- 中国人民大学助教岗位申请表.doc
- 重卡汽车换电基础设施项目规划设计方案.pptx VIP
- 微网经济调度问题的混合整数规划方法.pdf VIP
- 2025年换电模式下的电动汽车充电设施运营与管理研究报告.docx VIP
- 2025年新能源汽车换电模式供应链协同效率分析报告.docx VIP
原创力文档

文档评论(0)