C++程序设计第9章11概要1.pptVIP

  • 9
  • 0
  • 约1.54万字
  • 约 63页
  • 2017-07-02 发布于湖北
  • 举报
C程序设计第9章11概要1

第九章 流类库和输入/输出 9.1 C++的基本流类体系 9.3 标准设备的输入/输出 9.3.3 重载插入和提取运算符 9.4 文件的输入与输出 9.4.2  文本文件的读写 (2)使用文件流类的成员函数或者构造函数,打开一个 文件。打开文件的作用是在文件流对象与要使用的文件名 之间建立联系。 例: infile.open(“myfile1.txt”); //文件不存在出错 outfile .open(“myfile2.txt”); //文件不存在创建一个空文件 iofile .open(“myfile2.txt”,ios::in); //文件不存在返回失败 (3)使用提取运算符、插入运算符或成员函数对文件进 行读写操作。 例: infilech; outfilech; (4)用完文件后,使用成员函数关闭文件。 例: infile.close(); 9.4.1 文件的打开与关闭 1. 打开磁盘文件 打开文件是指在文件读写之前做必要的准备工作: 为文件流对象和指定的磁盘文件建立关联,以便使文件 流流向指定的磁盘文件。 (2) 指定文件的工作方式。 input或output、ASCII或二进制文件等。 可以通过两种不同的方法实现。 (1) 调用文件流的成员函数open。如 ofstream outfile; //定义ofstream类(输出文件流类)对象outfile outfile.open(″f1.dat″,ios::out); //使文件流与f1.dat文件建立关联 调用成员函数open的一般形式为: 文件流对象 . open(磁盘文件名,输入输出方式); 磁盘文件名可以包括路径: 如 :″c:\\new\\f1.dat″ 缺省路径,默认为当前目录下的文件。 (2) 在定义文件流对象时指定参数 可以在定义文件流对象时指定参数,调用文件流类的 构造函数来实现打开文件的功能。 如: ostream outfile(″f1.dat″,ios::out); 作用与open函数相同。输入输出方式是在ios类中定义 的,有多种选择。 关于文件打开方式,ios中定义了一个公有枚举类型,使用方法与输入输出格式控制类似: enum open_mode{ in=0x01, //打开文件用于输入操作(从文件读取),文件指针在文件头 out=0x02, /*打开文件用于写入文件。如文件不存在,则建立,但指定目 录必须存在,否则建立文件失败。如文件存在,未同时设 app,ate,in则文件清空*/ ate=0x04, //打开文件用于输入/输出,文件指针在文件尾,但新数据可写到任何 位置 app=0x08, //打开文件用于输出,但从尾部添加,新数据只能添加在尾部 trunce=0x10, //打开文件,并清空它,以建立新文件 nocreate=0x20, //如文件存在则打开,不存在并不创建新文件 noreplace=0x40, //如文件不存在则创建,如存在则只能设为ate及app方式 binary=0x80 //以二进制方式打开文件 }; 1. 以in方式打开的文件,只能从文件中读取数据。 以out方式打开的文件,只能将数据写入文件中。单独 用该方式打开文件时,若文件不存在,则产生一个空文件; 若文件存在,则先删除文件的内容,使其成为一个空文件。 4. ate方式不能单独使用,要与in、out或noreplace同时使 用,例如,out | ate,作用是在文件打开时,将文件指针 移到文件的结尾处,文件中原来的内容不变,向文件中写 入的数据增加到文件中。 3. app是以写方式打开文件,当文件存在时,它等同于 out | ate;而当文件不存在时,它等同于out。 以trunc方式打开文件时,清空文件,若文件不存在, 则建立文件,(若单独使用,与out打开文件相同) 。 以nocreate方式打开文件时,若文件不存在时,打开文 件的操作失败(打开不成功);该方式不单独使用,总是与 读或写方式同时使用,但它不能与noreplace同时使用。 noreplace通常用来创建一个新文件,这种方式也不单 独使用,总是

文档评论(0)

1亿VIP精品文档

相关文档