C程序设计9文件流).ppt
文本预览下载声明
第九讲 C++面向对象程序设计(六) 张仕 教学提纲 一、教学内容: 文件流操作 二、学时:两课时 三、教学目的和要求 掌握文件和文件流的概念 掌握文件打开、关闭和读写的方法 掌握顺序文件和随机文件的操作方法 四、教学重点和难点 重点:文件的读写 难点:随机文件的操作 四. 教学过程提要 文件和文件流的概念 文件的打开、关闭和读写 顺序文件 随机文件 布置作业题目和实验 先看一个例子: #include fstream.h void main() // 程序从这里开始运行 { ofstream SaveFile(e:\\f1.txt); SaveFile Hello World!; SaveFile.close(); } 3.11 文件流 文本文件和二进制文件 从文件编码的方式来看,文件可分为ASCII码文件和二进制码文件两种。 ASCII文件也称为文本文件,这种文件在磁盘中存放时每个字符对应一个字节,用于存放对应的ASCII码。例如,数5678的存储形式为:ASC码0011011000111000 ↓ ↓ ↓ ↓十进制码: 5 6 7 8 共占用4个字节。ASCII码文件可在屏幕上按字符显示。 由于是按字符显示,因此能读懂文件内容。 二进制文件是按二进制的编码方式来存放文件的。 例如, 数5678的存储形式为:00101110只占二个字节。二进制文件虽然也可在屏幕上显示, 但其内容无法读懂。C++系统在处理这些文件时,并不区分类型,都看成是字符流,按字节进行处理。 输入输出字符流的开始和结束只由程序控制而不受物理符号(如回车符)的控制。 因此也把这种文件称作“流式文件”。 3.11.2 文件的读写与文件指针 “文件指针”是指表示读写文件的文件位置指示器。一个文件指针总是和一个文件相关联,当文件每一次打开时,文件指针都指向文件的开始,随着对文件进行操作,文件指针不断地在文件中移动,并一直指向最新处理的字符(字节)位置。 对文件的读写操作方式有两种方式:顺序文件操作和随机文件操作。 C++中与文件处理相关的类及其继承关系结构图 表3.11-1 在ios类中定义的文件打开方式 打开文件例子: fstream f1; f1.open(d:\\vc\\test1.txt,ios::in); fstream f2; f2.open(d:\\vc\\test2.txt,ios::out|ios::trunc); 几点说明: 2. 关闭文件 3. 文件的读写 iostream的文件操作常用的函数 3.11.3 顺序文件的操作 【例3.11-1】 向顺序文件的读写操作 #include iostream.h #include fstream.h // 文件操作必须的头文件 void main() { fstream file1; // 定义一个fstream类的对象用于读 file1.open(Ex_DataFile.txt, ios::in); if (!file1) { coutEx_DataFile.txt不能打开!\n; return; } fstream file2; // 定义一个fstream类的对象用于写 file2.open(Ex_DataFileBak.txt, ios::out | ios::trunc); if (!file2) { coutEx_DataFileBak.txt不能创建!\n; file1.close(); return; } char ch; while (file1.get(ch)) //或:file1.read(ch,1) { coutch; file2.write(ch, 1); //或:file2ch } file2.close(); // 不要忘记文件使用结束后要及时关闭 file1.close(); } 【例3.11-2 】有一个整型数组,含10个元素,从键盘输入10个整数给数组,将此数组存到磁盘文件中. #include “fstream.h” int main( ) {int a[10]; ofstream outfile(f1.dat,ios::out); //定义文件流对象,打开磁盘文件″f1.dat″ if(!outfile) //如果打开失败,outfile返回0值 {coutopen error! endl; return(1); } coutenter 10 integer numbers
显示全部