网站大量收购闲置独家精品文档,联系QQ:2885784924

第七篇 C 的IO流库 - 首都师范大学.ppt

  1. 1、本文档共149页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第八章 C++ 的 I/O 流库 1 文本文件:又称为 ASCII 文件,这类文件中的每个 字节中存放一个 ASCII 代码,其含义一个字符。因 此,如果数据在内存中存放形式是 ASCII 代码,则 这样的数据无论是输出到文本文件还是从文本文件 输入都不需要进行任何变换;但如果数据在内存中 存放形式是二进制数,则这样的数据输出到文本文 件时必须先变换为 ASCII 代码,而从文件输入时必 须先变换为二进制数。例如整数 100000(0x186A0) 在内存中(二进制数)和文本文件中的存放形式:0000000110100000 内存(二进制数)001100000011000000110000 文本文件 显然,这样的输出过程和数据表示形式的转换与内 存中的二进制数据输出到控制台显示器是一致的, 即先将二进制数据转换为 ASCII 代码,在传送到显 示器的显示存储中,从而得以在显示器屏幕上以字 符形式显示输出。而输入过程和数据表示形式的转 换与从控制台键盘输入数据,并以二进制形式存放 到内存是一致的,即先将键盘输入产生的 ASCII 代 码转换为二进制形式后,传送到指定内存单元中。 使用文本文件存放和处理数据的特点: 优点:直观、方便、可读。 缺点:占用空间多,数据转换开销大。 2 二进制文件:这类文件中的每个字节存放二进制数 据字节,其含义视数据表示的内容(文本字符、计 算数据值、图象象素值等)而定。因此,无论数据 在内存以何种形式存放,输入输出到二进制文件中 的存放形式都保持不变,即无须进行任何转换。例 如,同样是整数 100000(0x186A0)在内存中(二进 制数)和二进制文件中的存放形式: 使用二进制文件存放和处理数据的特点: 优点:占用空间少,无数据转换开销,必威体育官网网址性好。 缺点:不直观,不方便,不可读。0000000110100000 内存(二进制数)0000000110100000 文本文件 无论是文本文件还是二进制文件,总可以把存放在 文件中数据看作是一连串的字节记录,而不考虑记录 的界限,对文件的存取都是以字节为单位进行的。我 们把这种文件成为流式文件。 对一个流式文件进行存取操作之前,必须首先创建 一个流,然后建立流与文件的关联,即打开文件,完 成流的插入或提取操作后,关闭这个文件,即解除流 与文件的关联。 8.4.1 文件的打开与关闭 所谓 “打开” 文件就是一个文件与一个流建立关联。 只有一个打开的文件才能够通过流对其进行输入输出 操作。为了执行对文件的输入输出操作,C++ 流类库 中有三个提供了文件读写操作的流类 用于文件输出 用于文件输入 用于文件输入或输出 ostream istream iostream ofstream ifstream fstream 功能 基类 名称 从它们的类派生层次中可以看出:根基类 ios 和 istream 或 ostream 中定义的操作在这三个相应的派生流 类中均可以使用。这三个类被定义在头文件 fstream.h 中。执行文件输入输出,必须做以下三件事: ·在程序中必须包含系统头文件 fstream.h。 ·建立流 —— 创建文件流类的对象,例如: ifstream in; // 输入流对象 ofstream out; // 输出流对象 fstream io; // 输入输出流对象 ·使用文件流类的成员函数 open 打开文件,也就是 使某一个文件与指定流相关联。open 的原型: void open( const char* szName, int mode, int nProt = filebuf::openprot ); 其中三个参数分别为: 1 文件名:字符串常量 szName 用来传递文件名。 2 打开方式:整型值 mode 指定了文件被打开的方 式,其取值范围如下表所示: 使输出追加到文件的尾部 查找文件尾 打开一个文件进行读操作 文件不存在,导致 open 调用失败。注意,在 Visual C++ 2005 中无此方式选择。 若文件存在,则 open 调用失败。注意,在 Visual C++ 2005 中无此方式选择。 打开一个文件进行写操作 创建新文件,同名文件被删除 二进制方式打开文件,缺省时为文本文件 ios::app ios::ate ios::in io

文档评论(0)

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

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

1亿VIP精品文档

相关文档