[理学]C++程序设计课件第4章.ppt

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

第4章 输入/输出流 本章主要内容: I/O流的概念 输入/输出流类体系结构 输入/输出流操作的格式控制 文件流 字符串流 插入符和提取符的重载 4.1 I/O流基本概念 在C++语言中,数据的输入和输出(简写为I/O)包括对标准输入设备键盘和标准输出设备显示器、对在外存磁盘上的文件和对内存中指定的字符串存储空间进行输入输出这三个方面。 对标准输入设备和标准输出设备的输入输出简称为标准I/O;对在外存磁盘上文件的输入输出简称为文件I/O;对内存中指定的字符串存储空间的输入输出简称为串I/O。 I/O流基本概念 C++中把数据之间的传输操作称作流。在C++中,流既可以表示数据从内存传送到某个载体或设备中,即输出流;也可以表示数据从某个载体或设备传送到内存缓冲区变量中,即输入流。在进行I/O操作时,首先打开操作,使流和文件发生联系,建立联系后的文件才允许数据流入或流出,输入或输出结束后,使用关闭操作使文件与流断开联系。 I/O流基本概念 C++中所有流都是相同的,但文件可以不同。使用流以后,程序用流统一对各种计算机设备和文件进行操作,使程序与设备、程序与文件无关,从而提高了程序设计的通用性和灵活性。也就是说,无论与流相联系的实际物理设备差别有多大,流都采用相同的方式运行。这种机制使得流可以跨越物理设备平台,实现流的透明运作,而与实际的物理设备无关。例如,往显示器上输出字符和向磁盘文件或打印机输出字符,尽管接受输出的物理设备不同,但具体操作过程是相同的。 I/O流基本概念 字节流 :字节流分为字符流(也称文本流)和二进制流。字符流在数据传输时需作转换,效率较低。但可以直接编辑,显示或打印。 二进制流:将字节流的每个字节以二进制方式解释,它在数据传输时不作任何转换,故效率高。但无法人工阅读,可移植性较差。 文件:文件是一般指存储在外部介质上数据的集合。计算机中的程序、数据、文档通常都组织成文件存放在外存储器中。 I/O流基本概念 缓冲:系统在主存中开辟的、用来临时存放输入输出数据的区域,成为输入输出缓冲区(简称缓冲区)。 命名空间:就是在程序的不同的模块中使用相同的名字表示不同的事物(实体)。目的是提供一种机制,使大程序的各个部分中因出现重名而导致冲突的可能性降到最低。 4.2 输入/输出流类体系 C++为实现数据的输入和输出定义了一个庞大的流类库,它包括的类主要有ios,istream,ostream,iostream,ifstream,ofstream,fstream等。类istream和ostream是类ios的公有派生类,分别提供输入和输出操作。继承关系见下图 。 4.2.1 流类库 4.2.1 流类库 C++I/O常用流类列表(1) 4.2.1 流类库 C++I/O常用流类列表 (2) 4.2.2 标准流对象 预先定义的输出流对象: cin 标准输入 cout 标准输出 cerr 标准错误输出,没有缓冲,发送给它的内容立即被输出。 clog 类似于cerr,但是有缓冲,缓冲区满时被输出。 4.2.2 标准流对象 【例】使用流cout和cerr实现数据的输出。 #includeiostream.h void main(void) { float a,b; cerr ”输入a和b的值:\n”; cinab; if (b!=0) couta’/’b’=’a/b’\n’; else cerr”除数为零!\n”; } 4.3 I/O流操作 4.3 I/O流操作 控制输出格式的流成员函数 4.3 I/O流操作 设置格式状态的格式标志 控制输出格式 控制输出宽度 为了调整输出,可以通过在流中放入setw操纵符或调用width成员函数为每个项指定输出宽度。 使用width控制输出宽度 #include iostream using namesoace std; void main() { double values[] = {1.23,35.36,653.7,4358.24}; for(int i=0;i4;i++) { cout.width(10); cout values[i] \n; } } 使用*填充 #include iostream using namespace std; void main() { double values[]={1.23,35.36,653.7,4358.24}; for(int i=0; i4; i++) { cout.width(10); cout.fill(*); co

文档评论(0)

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

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

1亿VIP精品文档

相关文档