第14章_文件C++.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第14章_文件C

* 第14章 标准库 第14章 文 件 * 第14章 标准库 14.1 C++标准库 14.2 标准输入输出 14.3 标准模板库 * 14.2.2 文件流 1.文件的概念 程序常常需要将一些数据信息(如运行结果)永久性地保存下来,或者从永久性信息中读取有用的数据(如历史记录),这些都需要进行文件操作。C++文件操作是通过文件流实现的。 文件是指存放在磁盘上数据的集合。操作系统以文件为单位对这些数据进行管理。也就是说,如果想得到存在磁盘上的数据,必须先按文件名找到指定的文件,然后再从该文件中读取数据。要向磁盘上存放数据也必须先以文件名为标识创建建一个文件,才能向它输出数据。 * 14.2.2 文件流 文件按数据的组织形式可以分为两类: (1)ASCII文本文件 文本(text)文件对于ASCII字符集而言,文件中每个字节存放的是一个ASCII码,表示一个字符;对于像汉字、日韩文字等字符集而言,使用双字节存放字符。 (2)二进制文件 二进制文件是将数据以内存中的存储形式直接存放到磁盘上。用二进制形式输出数据,可以节省存储空间和避免编码转换。由于一个字节并不对应一个字符,所以不能直接打印输出或编辑二进制文件。 * 14.2.2 文件流 2. 文件打开 已创建的文件流对象需要和指定的磁盘文件建立关联,以便使文件流流向指定的磁盘文件,这个过程称为文件打开。 打开文件有两种方式:一是定义文件流对象时使用带参数的构造函数;二是调用文件流成员函数open。其函数原型如下: * 14.2.2 文件流 文件打开-函数原型如下: ifstream(); //文件输入流构造函数 //文件输入流构造函数,用指定的mode方式打开filename文件 ifstream(const char* filename,ios_base::openmode mode=ios_base::in); ofstream(); //文件输出流构造函数 //文件输出流构造函数,用指定的mode方式打开filename文件 ofstream(const char* filename,ios_base::openmode mode=ios_base::out); fstream(); //文件输入输出流构造函数 //文件输入输出流构造函数,用指定的mode方式打开filename文件 fstream(const char* filename,ios_base::openmode mode=ios_base::in|ios_base::out); //用指定的mode方式打开filename文件 void open(const char* filename,ios_base::openmode mode=ios_base::in); bool operator!(); //检测流对象是否为空 bool is_open(); //检测文件是否打开 * 14.2.2 文件流 表14-2 打开方式openmode 取值 含义 作用 ios_base::in input 以输入(读)方式打开文件(默认方式) ios_base::out output 以输出(写)方式打开文件。若已存在该文件,则将其内容全部清空 ios_base::app append 以输出方式打开文件,写入的数据添加在文件末尾 ios_base::ate at end 打开一个已有的文件,文件指针指向文件末尾 ios_base::binary binary 二进制文件,默认为ASCII文件 ios_base::trunc truncate 打开一个文件,若文件己存在,则将其内容全部清空;若文件不存在,则建立新文件。若指定了ios::out方式而未指定ios::app、ios::ate、ios::in时,默认为此方式 * 14.2.2 文件流 说明: (1)可以用位或运算(|)对openmode进行组合。 (2)打开文件时操作可能会失败,如果打开操作失败,open函数返回值为0(假),如果是调用构造函数打开文件的,则流对象的值为0(空对象)。可以据此测试打开是否成功,确定能否对该文件继续操作。 (3)每一个打开的文件都有一个文件指针,该指针初始位置要么在文件末尾(当指定ios_base::app或ios_base::ate时),要么在文件开头。每次读写都从文件指针的当前位置开始。每读写一个字节,指针就后移一个字节。当文件指针移到最后,就会遇到文件结束EOF(文件结束符)。 * 14.2.2 文件流 3.文件关闭 当不再使用文件时,应该关闭该文件。关闭文件可以调用文件流成员函数: 当文件关闭后,就不能再通过流对象对文件进行操作了,除非再次打开。 void close(); //关闭文件

文档评论(0)

2232文档 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档