第九章流类库和输入输出(C程序设计(第2版)吴乃陵).ppt
《第九章流类库和输入输出(C程序设计(第2版)吴乃陵).ppt》由会员分享,可在线阅读,更多相关《第九章流类库和输入输出(C程序设计(第2版)吴乃陵).ppt(21页珍藏版)》请在三一办公上搜索。
1、第九章 流类库和输入/输出,文件是存储在磁盘、磁带等外部设备上数据集合,每一个文件都必须有一个唯一名字。使用文件前必须首先打开文件,使用后必须关闭文件。对文件的操作时通过文件流类完成的。文件流类在流与文件之间建立连接,使用这些文件流类必须用#include 编译指令将fstream.h包含进来。数据从一个对象到另一个对象的传送被抽象为“流”。数据的输入/输出就是通过输入/输出流来实现的。流是一种抽象的概念,负责在数据的产生者和数据的使用者之间建立联系,并管理数据的流动。,9.1 C+的基本流类体系,流类体系:以抽象类模板ios为基类,流类模板派生体系见图。整个流类模板体系的标准I/O在头文件中
2、说明,它包含头文件、和。而输入输出文件流部分在头文件中说明。,主要输入/输出流模板层次,9.2 文件的输入与输出,本节中文件指的是磁盘文件。C+根据文件(file)内容的数据格式,可分为两类:二进制文件和文本文件。文本文件由字符序列组成,也称ASCII码文件,在文本文件中存取的最小信息单位为字符(character),而二进制文件中存取的最小信息单位为字节(Byte)。,C+把每一个文件都看成一个有序的字节流,见图9.2,每一个文件或者以文件结束符(end of file marker)结束,或者在特定的字节号处结束。,文件的基本概念:,9.2 文件的输入与输出,当打开一个文件时,该文件就和某
3、个流关联起来了。对文件进行读写实际上受到一个文件定位指针(file position pointer)的控制。输入流的指针也称为读指针,每一次提取操作将从读指针当前所指位置开始,每次提取操作自动将读指针向文件尾移动。输出流指针也称写指针,每一次插入操作将从写指针当前位置开始,每次插入操作自动将写指针向文件尾移动。,9.2.1 文件的打开与关闭,9.2.2 文本文件的读写,9.2.3 二进制文件的读写,9.2.4 文件的随机访问,9.2.1 文件的打开与关闭,文件使用步骤:1说明一个文件流对象,这又被称为内部文件:ifstream ifile;/只输入用ofstream ofile;/只输出用f
4、stream iofile;/既输入又输出用,2使用文件流对象的成员函数打开一个磁盘文件。这样在文件流对象和磁盘文件名之间建立联系。文件流中说明了三个打开文件的成员函数。void ifstream:open(const char*,int=ios:in,int=filebuf:openprot);void ofstream:open(const char*,int=ios:out,int=filebuf:opernprot);void fstream:open(const char*,int,int=filebuf:openprot);第一个参数为要打开的磁盘文件名。第二个参数为打开方式,有输
5、入(in),输出(out)等,打开方式在ios基类中定义为枚举类型。第三个参数为指定打开文件的保护方式,一般取默认。所以第二步可如下进行:iofile.open(“myfile.txt”,ios:in|ios:out);,文件打开方式:是由在ios类中定义的公有枚举成员决定:enum open_mode in=0 x01,out=0 x02,ate=0 x04,app=0 x08,trunc=0 x10,binary=0 x80;,ios:in 打开文件进行读操作 ios:out 打开文件进行写操作 ios:ate 打开时文件指针定位到文件尾 ios:app 添加模式,所有增加都在文件尾部进行
6、 ios:trunc 如果文件已经存在则清空源文件 ios:nocreate 如果文件不存在则打开失败 ios:noreplace 如果文件存在则打开失败 ios:binary 二进制文件(非文本文件)Mode的符号常量可以用位或运算|组合在一起,如:ios:in|ios:binary 只读方式打开二进制文件对于ifstream流,mode默认方式是ios;in;对于ofstream流,mode默认方式是ios;out;,打开方式解释:,Port决定文件的访问方式0 普通文件 2 隐含文件1 只读文件 4 系统文件,三个文件流类都重载了一个带默认参数的构造函数,功能与open函数一样:ifst
7、ream:ifstream(const char*,int=ios:in,int=filebuf:openprot);ofstream:ofstream(const char*,int=ios:out,int=filebuf:openprot);fstream:fstream(const char*,int,int=filebuf:operprot);所以1,2两步可合成:fstream iofile(”myfile.txt”,ios:in|ios:out);,打开文件也应该判断是否成功,若成功,文件流对象值为非零值,不成功为0(NULL),文件流对象值物理上就是指它的地址。因此打开一个文件完
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第九 章流类库 输入输出 程序设计 吴乃陵

链接地址:https://www.31ppt.com/p-5666448.html