- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第七章 C 的IO流库的 - 首都师范大学
第八章 C++ 的 I/O 流库 1 文本文件:又称为 ASCII 文件,这类文件中的每个 字节中存放一个 ASCII 代码,其含义一个字符。因 此,如果数据在内存中存放形式是 ASCII 代码,则 这样的数据无论是输出到文本文件还是从文本文件 输入都不需要进行任何变换;但如果数据在内存中 存放形式是二进制数,则这样的数据输出到文本文 件时必须先变换为 ASCII 代码,而从文件输入时必 须先变换为二进制数。例如整数 100000(0x186A0) 在内存中(二进制数)和文本文件中的存放形式:0000000110100000 内存(二进制数)001100000011000000110000 文本文件 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. 显然,这样的输出过程和数据表示形式的转换与内 存中的二进制数据输出到控制台显示器是一致的, 即先将二进制数据转换为 ASCII 代码,在传送到显 示器的显示存储中,从而得以在显示器屏幕上以字 符形式显示输出。而输入过程和数据表示形式的转 换与从控制台键盘输入数据,并以二进制形式存放 到内存是一致的,即先将键盘输入产生的 ASCII 代 码转换为二进制形式后,传送到指定内存单元中。 使用文本文件存放和处理数据的特点: 优点:直观、方便、可读。 缺点:占用空间多,数据转换开销大。 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. 2 二进制文件:这类文件中的每个字节存放二进制数 据字节,其含义视数据表示的内容(文本字符、计 算数据值、图象象素值等)而定。因此,无论数据 在内存以何种形式存放,输入输出到二进制文件中 的存放形式都保持不变,即无须进行任何转换。例 如,同样是整数 100000(0x186A0)在内存中(二进 制数)和二进制文件中的存放形式: 使用二进制文件存放和处理数据的特点: 优点:占用空间少,无数据转换开销,保密性好。 缺点:不直观,不方便,不可读。0000000110100000 内存(二进制数)0000000110100000 文本文件 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. 无论是文本文件还是二进制文件,总可以把存放在 文件中数据看作是一连串的字节记录,而不考虑记录 的界限,对文件的存取都是以字节为单位进行的。我 们把这种文件成为流式文件。 对一个流式文件进行存取操作之前,必须首先创建 一个流,然后建立流与文件的关联,即打开文件,完 成流的插入或提取操作后,关闭这个文件,即解除流 与文件的关联。 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. 8.4.1 文件的打开与关闭 所谓 “打开” 文件就是一个文件与一个流建立关联。 只有一个打开的文件才能够通过流对其进行输入输出 操作。为了执行对文件的输入输出操作,C++ 流类库 中有三个提供了文件读写操作的流类 名称 ofstream ifstream fstream 基类 ostream istream iostream 功能 用于文件输出 用于文件输入 用于文件输入或输出 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. 从它们的类派生层次中可以看出:根基类 ios 和 istream 或 ostream 中定义的操作在这三个相应的派生流 类中均可以使用。这三个类被定义在头文件
文档评论(0)