- 1、本文档共28页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
;;? 1. 流
? C++的输入输出是以字节流的形式实现的。
? 流是指由若干字节组成的字节序列的数据从一个对象传递到另一个对象的操作。
? 从流中读取数据称为提取操作,向流内添加数据称为插入操作。
? 流在使用前要建立,使用后要删除。
? 流具有方向性:与输入设备相联系的流称为输入流,与输出设备相联系的流称为输出流,与输入输出设备相联系的流称为输入输出流。;? C++输入输出类库中包含许多流类(stream class),如下图所示。;? 提取和插入运算符
? 在istream类中已经将运算符()重载为提取运算符,支持基本数据类型及其指针类型。
? 在ostream类中已经将运算符()重载为插入运算符,其适用类型除了前述类型外,还增加了void*类型。;? 预定义流对象
? 标准库将常用iostream类的流对象,定义在iostream头文件中,它们是:
? ①cin:与标准输入设备相关联的标准输入流(istream对象);
? ②cout:与标准输出设备相关联的标准输出流(ostream对象);;? 2. 文件
? 程序常常需要将一些数据信息(如运行结果)永久性地保存下来,或者从永久性信息中读取有用的数据(如历史记录),这些都需要进行文件操作。C++文件操作是通过文件流实现的。
? 文件是指存放在磁盘上数据的集合。操作系统以文件为单位对这些数据进行管理。也就是说,如果想得到存在磁盘上的数据,必须先 按文件名找到指定的文件,然后再从该文件中读取数据。要向磁盘 上存放数据也必须先以文件名为标识创建建一个文件,才能向它输 出数据。;? 文件按数据的组织形式可以分为两类:
? (1)ASCII文本文件
? 文本(text)文件对于ASCII字符集而言,文件中每个字节存放的是一个ASCII码,表示一个字符;对于像汉字、日韩文字等字符集而 言,使用双字节存放字符。
? (2)二进制文件
? 二进制文件是将数据以内存中的存储形式直接存放到磁盘上。用二进制形式输出数据,可以节省存储空间和避免编码转换。由于一个字节并不对应一个字符,所以不能直接打印输出或编辑二进制文件。;? 1. 文件打开
? 已创建的文件流对象需要和指定的磁盘文件建立关联,以便使文件流流向指定的磁盘文件,这个过程称为文件打开。
? 打开文件有两种方式:
? (1)是定义文件流对象时使用带参数的构造函数;
? (2)是调用文件流成员函数open。;;表19-1 打开方式openmode;? 说明:
? (1)可以用位或运算(|)对openmode进行组合。
? (2)打开文件时操作可能会失败,如果打开操作失败,open函数返回值为0(假)。如果是调用构造函数打开文件且打开操作失败, 则流对象的值为0(空对象)。可以据此测试打开是否成功,确定 能否对该文件继续操作。
? (3)每一个打开的文件都有一个文件指针,该指针初始位置要么在文件末尾(当指定ios_base::app或ios_base::ate时),要么在文件开头。每次读写都从文件指针的当前位置开始。每读写一个字节, 指针就自动后移一个字节。当文件指针移到最后,就会遇到文件结束EOF(文件结束符)。;? 2. 文件关闭
? 当不再使用文件时,应该关闭该文件。关闭文件可以调用文件流成;? 3. 文件状态
? 文件流提供如下四个成员函数用来检测文件状态:;? 4. 文件操作的基本形式
? 几乎所有文件应用中的打开和关闭的程序形式是相同的,为此给出
通用的文件打开和关闭的操作步骤:
? ①定义文件流对象;
? ②通过构造函数或者成员函数open打开文件(或创建文件);
? ③打开文件失败时中断文件处理;
? ④对文件进行各种操作;
? ⑤文件处理结束时关闭文件。;? 文件操作的基本形式 ---代码形式;? 文件操作包括读写和定位,除流提取和流插入运算符外,文件流还有如下有用的操作文件的成员函数:;? 5. 文件操作举例
? (1)对ASCII文件操作。
? 对ASCII文件的读写操作可以用以下两种方法:
? ①用流插入()运算符和流提取()运算符输入输出标准类
型的数据;
? ②用流对象成员函数get、getline、put等进行字符的输人输出。;【例19.1】将源文件每行文本添加一个行号输出到目的文件中。;;? (2)对二进制文件操作。
? 二进制文件打开时要用ios_base::binary指定为以二进制形式读取和存储。
? 二进制文件除了可以作为输入文件或输出文件外,还可以是既能输入又能输出的文件。这是和ASCII文件不同的地方。
? 对二进制文件的读写操作主要使用流成员函数read和write。;【例19.2】复制源文件内容到目的文件。;;? (3)随机访问二进制文件。
? 一般情况下读写文件是顺序进行的,即逐个字节
您可能关注的文档
最近下载
- 胆总管结石小讲课.pptx VIP
- 基于stm32嵌入式技术的智能药盒设计.docx VIP
- 广西公务员考试《行测》通关模拟试题及答案解析【2022】:70 - 行测模拟题.docx VIP
- 学堂课程在线“一带一路”沿线国家跨文化商务交际(大连外国语大学)期末测试答案.docx VIP
- 教职工篮球组队训练方案.docx
- 第29课对手是一面镜子ppt.ppt
- 桥头搭板施工技术交底.docx VIP
- JTG 3432—2024 公路工程集料试验规程.docx
- 05s502-砖砌矩形水表井.pdf
- 09作文-湖南省长沙市五年(2018-2022)小升初语文卷真题分题型分层汇编(共28题).doc VIP
文档评论(0)