面向对象程序设计语言C-第8章流库.ppt_第1页
面向对象程序设计语言C-第8章流库.ppt_第2页
面向对象程序设计语言C-第8章流库.ppt_第3页
面向对象程序设计语言C-第8章流库.ppt_第4页
面向对象程序设计语言C-第8章流库.ppt_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

面向对象程序设计语言C+,电子科技大学示范性软件学院,1,第八章 流库,8.1 C+的I/O系统 C+为了与C兼容,仍然保留了printf和scanf进行输入输出的方法。在C+的输入输出中,编译系统对数据类型进行严格的检查,凡是类型不正确的数据都不可能通过编译,因此C+的I/O操作是类型安全的。 但printf和scanf有一个重大的缺陷:就是它们不能处理用户自定义类型。所以,C+引入了自己的输入输出方式:流。C+采用继承的方法建立了比较实用的流库,流库不仅提供了与C的I/O系统相似的功能,而且功能更强灵活性更大,能方便进行扩充。,2,第八章 流库,8.2 C+流库的结构 8.2.1输入输出流的含义 输入是数据从输入设备(如键盘,磁盘,鼠标等)到内存的过程,输出是内存的数据输出到输出设备(如显示屏幕,打印机,磁盘等)的过程。输入输出过程中,数据像流水一样从一处流到另外一处,C+形象的描述该过程为流。流的内容可以是ASCII码字符、二进制形式的数据、图形图像、数字音频视频或者其他形式的信息。 在C+中,输入输出流被定义为类。C+的I/O库中的类称为流类,用流类定义的对象称为流对象。比如cin是输入流对象,cout是输出流对象。,3,第八章 流库,8.2 C+流库的结构 8.2.2 C+流库的结构,4,第八章 流库,8.3 输入和输出 istream 流类将运算符“”重载为输入运算符,它相对于系统预定义类型(如 int,char,float,double等类型)重载。ostream 流类将运算符“”和“”和“”以满足自己的需要。,5,第八章 流库,8.4 格式控制 在很多情况下,对计算机的输入输出格式进行控制是非常有用的,C+ 提供了比较灵活的方式控制输入输出的格式。 在 C+ 中,可以用 C 中的 printf 和 scanf 语句进行格式化I/O,这是 C 程序员比较熟悉的方法。除此以外,C+ 还提供了两种进行格式控制的方法, 一种是使用ios类有关格式控制的成员函数,另外一种是使用称为操纵符(manipulator)的特殊类型的函数,下面介绍这两种格式控制的方法。,6,第八章 流库,8.4 格式控制 8.4.1 用ios类成员函数格式化,7,第八章 流库,8.4 格式控制 8.4.2 用操纵函数格式化 改变格式变量比较简单的方法是使用特殊的,但类似于函数的运算符,C+称之为操纵符。操纵符以一个流引用作为其参数,并返回同一流的引用,因此,它可嵌入到输入或输出操作的链中。例如,操纵函数 setw(int w) 是将域宽设置为w。,8,第八章 流库,8.4 格式控制 8.4.2 用操纵函数格式化 下表示C+与定义的操纵符:,9,第八章 流库,8.5 文件I/O 8.5.1 文件的概念 文件指存储在外部介质上的数据集合。操作系统以文件为单位管理数据。如果想找外部介质的数据,先通过文件名找到指定文件,再从文件读数据。如果想将数据存储在外部介质中,也是先建立一个文件,然后才能输出数据。 根据文件中的数据的组织形式,可以分为ASCII码文件和二进制文件。,10,第八章 流库,8.5 文件I/O 8.5.1 文件的概念 写入到文件和从文件读出的过程可分解为三个抽象的概念:往流中加入一个字符; 从流中取出一个字符; 一旦建立一个流,把它与文件相关连以便用来读和写。 因此,在 C+ 中,要进行文件I/O,首先必须创建一个流,然后将这个流与文件相关联(称为打开文件),这时才能进行读和写操作,使用完后,需关闭文件。,11,第八章 流库,8.5 文件I/O 8.5.2 文件的打开和关闭 C+有三种类型的文件流:输入文件流、输出文件流和输入/输出文件流。 要打开一个输入文件流,必须说明类型为ifstream的对象; 要打开一个输出文件流,必须说明一个类型为ofstream的对象; 要建立输入和输出的流必须说明一个类型为 fstream的对象。,12,第八章 流库,8.5 文件I/O 下面介绍open函数的函数原型。 void open(const char * ,int filemode,int = filebuf:openprot) 第一个参数表示相关联的文件名,第二个参数表示文件的打开方式,第三个参数是文件的保护方式,与操作系统有关,用户一般只使用缺省值。,13,第八章 流库,8.5 文件I/O 文件的打开方式如下:,14,第八章 流库,8.5 文件I/O 8.5.3 文件的读写 文件读操作是从流中取一个元素,文件写操作是向流中写一个元素。ofstream类从ost

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论