中国高校课件下载中心 》 教学资源 》 大学文库

内蒙古科技大学:《C语言程序设计》课程授课教案(讲义)第九章 文件操作

文档信息
资源类别:文库
文档格式:DOC
文档页数:4
文件大小:70KB
团购合买:点击进入团购
内容简介
内蒙古科技大学:《C语言程序设计》课程授课教案(讲义)第九章 文件操作
刷新页面文档预览

内蒙古科技大学 教 案 课程名称:C语言程序设计 编写时间:2014年2月16日 授课章节 第九章文件操作$9.4 目的要求 掌握文件概念与文件类型指针、文件的打开与关闭、文件的读写及标准输入与标准输出 重点难点 文件指针、文件的读/写 一、教学内容 9.4高级文件操作 一、文件的概念 文件是一组存储在外部介质上数据的集合,而组成文件的这些数据可以是一批二进制 数、一组字符或一个程序。包括磁盘文件和设备文件。 1.文件的分卷 举例说明为了解 按照不同的标准可以把文件分为不同的类型。 决将不同数据类 ()按文件的结构形式分类 型能有机的结合 ·二进制文件:二进制文件是把内存中的二进制数据按其在内存中的存储形式原样输出 在一起。 到磁盘上存放。 ©文本文件:全部由字符组成的具有行列结构的文件,由于文件的每个元素都是用ASCI 码来表示的(又称ASCII码文件)。 2)按照文件的读写方式分类 ·顺序文件:它把数据看成作为一连串的字符或字节数据,当从顺序文件中读取数据时 先输入的先输出,按照顺序输入输出。 给出结构体类型 ②随机文件:在该文件中,可以对该文件的某一元素进行读写,不需要从文件开头开始。 般格式。 3)按照文件存储的外部设备分类 0设备文件:在C语言中, 外部设备都作为文件对待,称为设备文件 ®磁盘文件:通过磁盘来存储某些数据,这样的文件称为磁盘文件。 (④)按照系统对文件的处理方法分类 0缓冲文件:即系统在内存中开辟一个缓冲区,当对磁盘文件操作时,首先经过缓冲 区,才能达到目的。 ®非缓冲文件:开辟缓冲区的工作由程序来完成,不是由系统来完成。 2。文件类型指针 在C语言中,无论是一般磁盘文件还是设备文件,都可以通过文件结构体类型的数据 集合进行输入输出操作,文件结构体是由系统定义的,取名为FILB,其意义包含在 stdio.h文件中。主要信息有: ①文件名 ②文件状态 @文件当前的读/写位置 ④文件缓冲区的位置 ⑤文件从当前位置开始在缓冲区中的数据个数 第1次 第1页

内 蒙 古 科 技 大 学 教 案 课程名称: C 语言程序设计 编写时间:2014 年 2 月 16 日 授课章节 第九章 文件操作 $9.4 目的要求 掌握文件概念与文件类型指针、文件的打开与关闭、文件的读/写及标准输入与标准输出 重点难点 文件指针、文件的读/写 一、教学内容 9.4 高级文件操作 一、文件的概念 文件是一组存储在外部介质上数据的集合。而组成文件的这些数据可以是一批二进制 数、一组字符或一个程序。包括磁盘文件和设备文件。 1.文件的分类 按照不同的标准可以把文件分为不同的类型。 (1)按文件的结构形式分类 二进制文件:二进制文件是把内存中的二进制数据按其在内存中的存储形式原样输出 到磁盘上存放。 文本文件:全部由字符组成的具有行列结构的文件,由于文件的每个元素都是用 ASCI 码来表示的(又称 ASCII 码文件)。 (2)按照文件的读写方式分类 顺序文件:它把数据看成作为一连串的字符或字节数据,当从顺序文件中读取数据时, 先输入的先输出,按照顺序输入输出。 随机文件:在该文件中,可以对该文件的某一元素进行读写,不需要从文件开头开始。 (3)按照文件存储的外部设备分类 设备文件:在 C 语言中,把外部设备都作为文件对待,称为设备文件。 磁盘文件:通过磁盘来存储某些数据,这样的文件称为磁盘文件。 (4)按照系统对文件的处理方法分类 缓冲文件:即系统在内存中开辟一个缓冲区,当对磁盘文件操作时,首先经过缓冲 区,才能达到目的。 非缓冲文件:开辟缓冲区的工作由程序来完成,不是由系统来完成。 2.文件类型指针 在 C 语言中,无论是一般磁盘文件还是设备文件,都可以通过文件结构体类型的数据 集合进行输入输出操作,文件结构体是由系统定义的,取名为 FILE,其意义包含在 stdio.h 文件中。主要信息有: 文件名 文件状态 文件当前的读/写位置 文件缓冲区的位置 文件从当前位置开始在缓冲区中的数据个数 举例说明为了解 决将不同数据类 型能有机的结合 在一起。 给出结构体类型 一般格式。 第 1 次 第 1 页

内蒙古科技大学 教 案(续页) 对文件的处理步骤一毅为: 打开文件 文件的读/写—关闭文件 文件的打开与关闭 1.文件的打开ropen 函数原型: FILE *fopen(char *filename,char *mode) 给出用typedef 【功能】:按指定方式打开文件。 定义的结构体 【说明: 类型 ①fp为文件指针,指向文件filename,即可为字符串变量,也可为字符串常量: ②mode为文件打开的方式,为下列之中: “r 以只读方式打开一个己有文本文件 “国” 以只写方式建立一个文本文件 “a” 以添加方式打开一个文本文件,在文件末尾添加,若文件不存在, 则建立 个新的文件后在添加 “rb 以只读方式打开一个二进制文件 “wb 以只写方式打开一个二讲制文件 “ab 以添加方式打开一个二进制文件 以读写方式打开一个已有文本文件 以读写方式建立 一个新的文本文件 a 以修改方式打开一个文本文件,在文件末尾添加修改,若文件不有 在,则建立一个新的文件后在添加。 “rb+" 以读写方式打开一个己有的二进制文件 以读写方式建立一个新的二进制文件 “ab+n 以修改方式打开一个二进制文件 例如:打开为读/写打开C:test.TXT二进制文件文件 FILE *fp: //定义文件指针 fp=fopen(“c:\test”,“rb+”);/打开文件 2.关闭文件fc10se() fclose(FILE *fp) 【功能】关闭f印指向的文件,释放文件结构体和文件指针 例如:打开为读/写打开C:\test.TXT二进制文件文件,操作完后关闭。 FILE *fp: /定义文件指针 先定义结构材 fp=fopen(“c:test”,“rbr”):/打开文件 类型,然后用 //操作文件 定义该类型下 felose (fp); /关闭文件 的变量。 第1次 第2页

内 蒙 古 科 技 大 学 教 案(续页) 对文件的处理步骤一般为: 打开文件——文件的读/写——关闭文件 二、文件的打开与关闭 1.文件的打开 fopen() 函数原型: FILE *fopen(char *filename,char *mode) 【功能】:按指定方式打开文件。 【说明】: fp 为文件指针,指向文件 filename,即可为字符串变量,也可为字符串常量; mode 为文件打开的方式,为下列之中: “r” 以只读方式打开一个已有文本文件 “w” 以只写方式建立一个文本文件 “a” 以添加方式打开一个文本文件,在文件末尾添加,若文件不存在, 则建立一个新的文件后在添加。 “rb” 以只读方式打开一个二进制文件 “wb” 以只写方式打开一个二进制文件 “ab” 以添加方式打开一个二进制文件 “r+” 以读写方式打开一个已有文本文件 “w+” 以读写方式建立一个新的文本文件 “a+” 以修改方式打开一个文本文件,在文件末尾添加修改,若文件不存 在,则建立一个新的文件后在添加。 “rb+” 以读写方式打开一个已有的二进制文件 “wb+” 以读写方式建立一个新的二进制文件 “ab+” 以修改方式打开一个二进制文件 例如:打开为读/写打开 C:\test.TXT 二进制文件文件 FILE *fp; //定义文件指针 fp= fopen (“c:\test”,“rb+”); //打开文件 2.关闭文件 fclose( ) int fclose(FILE *fp) 【功能】:关闭 fp 指向的文件,释放文件结构体和文件指针。 例如:打开为读/写打开 C:\test.TXT 二进制文件文件,操作完后关闭。 FILE *fp; //定义文件指针 fp= fopen (“c:\test”,“rb+”); //打开文件 . //操作文件 fclose(fp); //关闭文件 接着定义两个结构体变量student1,student2: struct STUDENT student1,student2; struct STUDENT student1,student2; 给出用 typedef 定义的结构体 类型。 先定义结构体 类型,然后再 定义该类型下 的变量。 第 1 次 第 2 页

内蒙古科技大学 教 案(续页) 三、文件的读写操作 1.字符输出fputc(() 函数原型:int fputc((ntch,FILE*p 【功能1:把一字符ch写入印指向的文件中。 定义学生成绩管 返值:正常,返回ch:出错,为EOF。 理结构体类型的 2.字符输入fgete() 同时定义结构体 函数原型:int fgetc(FILE*p) 变量stul,su2 【功能】:从印指向的文件中读取一个字符。 返值:正常,返回读取的字符:读到文件尾或出错时,为EOF。 例1:从文件中读出一个字符,并在屏幕上显示。 #include main() FILE *fp; 不出现结构体 char a: fp=fopen("filel.c","r". 名,直接定义结 a-fgetc(fp). 构体变量 putchar(a): stu1.stu2 fclose(fp) 例2:将通过键盘输入的一个字符写入文件le1中。 #include main() FILE*fp: char a, 结构体的引用有 a=getchar(); 两种“”和“一>” fp=fopen("filel.c","w"). fputc(a,fp). fclose(fp). 3.字符串输出函数puts) 函数原型:int fgets((char*s,int n,file*p) 【功能】:从文件指针印关联的文件中读取-l个字符,并将它们存放到sr所代 表的字符串对象中去。如果在读入-1个字符前遇到换行符'n'或文件结束符 EOF,将遇到的换行符作为一个字符处理,然后在读入的字符串末尾自动加上 个字符串结尾符”0” 返回值:正常,返r指针:出错,返空指针NUL。 第1次第3页

内 蒙 古 科 技 大 学 教 案(续页) 三、文件的读写操作 1.字符输出 fputc( ) 函数原型:int fputc(int ch, FILE *fp) 【功能】:把一字符 ch 写入 fp 指向的文件中。 返值:正常,返回 ch;出错,为 EOF。 2.字符输入 fgetc() 函数原型:int fgetc( FILE *fp ) 【功能】:从 fp 指向的文件中读取一个字符。 返值:正常,返回读取的字符;读到文件尾或出错时,为 EOF。 例 1:从文件中读出一个字符,并在屏幕上显示。 #include main() { FILE *fp; char a; fp=fopen("file1.c","r"); a=fgetc(fp); putchar(a); fclose(fp); } 例 2:将通过键盘输入的一个字符写入文件 file1 中。 #include main() { FILE *fp; char a; a=getchar(); fp=fopen("file1.c","w"); fputc(a,fp); fclose(fp); } 3.字符串输出函数 fputs( ) 函数原型:int fgets(char *s, int n, file *fp) 【功能】:从文件指针 fpt 关联的文件中读取 n-1 个字符,并将它们存放到 str 所代 表的字符串对象中去。如果在读入 n-1 个字符前遇到换行符’\n’或文件结束符 EOF,将遇到的换行符作为一个字符处理,然后在读入的字符串末尾自动加上一 个字符串结尾符’\0’ 。 返回值:正常,返 str 指针;出错,返空指针 NULL。 定义学生成绩管 理结构体类型的 同时定义结构体 变量 stu1,stu2 不 出 现 结 构 体 名,直接定义结 构体变量 stu1,stu2 结构体的引用有 两种“.”和“—>” 第 1 次 第 3 页

内蒙古科技大学 教 案(续页) 4.字符串输出函数puts() 函数原型:int fputs(char*sFLE◆p) 【功能】:将s所代表的字符串(指向字符串的指针、字符数组或字符串常量)写入 同样使用前面 定义好的结构 文件指针印关联的文件。 体变量来给 返回值:函数u心s正常执行时返回写入文件中的字符个数,函数执行出错时返回 studentl变量 值为EOF(-1)。 赋值 5.数据块输出函数fwrite() 函数的调用形式:fwrite(buffer,s,izc,count,.fp 【说明】:burrer为输出数据在内存中的起始地址:sizc为要输出的字节数: cout指定一次操作输出多少个siz心字节的数据项:fpt与被操作的文件相关联的文 件指针: 【功能】:从以bufa为首地址的内存中取出count次size长度(共count*size字节 输出到印t关联的文件中。函数正常操作时返回值为输出的项数,出错时返回值为-1 给出结构体数 6.数据块输入函数fread() 组定义,同时 对结构体数组 函数调用的形式: 元素进行赋 fread(buffer.size.countfpt). 【说明】:参数与5.fwrite()函数相同: 7.文件定位 L.rewind函数 void rewind(FILE *fp) 功能:把文件定位指针重新返回到文件开头。此函数没有返回值。 2.ftell函数 ftel(fpt方 功能:返回文件定位指针的当前位置,即文件头的位移量(长整型),文件头的位置 定为0。函数的参数是文件的指针。如果fll函数返回值为-1L,表示出错。 3.fseck函数 int fseek(FILE fp,long offsetint origin) 功能:改变文件的位置指针。 课堂教学小结: 通过本讲,使学生能掌握文件的指针、文件的打开和关闭、文件的读/写操作,文件的 主要一些函数的功能及使用。 第1次第4页

内 蒙 古 科 技 大 学 教 案(续页) 4.字符串输出函数 fputs() 函数原型:int fputs(char *s,FILE *fp) 【功能】:将 s 所代表的字符串(指向字符串的指针、字符数组或字符串常量)写入 文件指针 fp 关联的文件。 返回值:函数 fputs 正常执行时返回写入文件中的字符个数,函数执行出错时返回 值为 EOF(-1)。 5.数据块输出函数 fwrite() 函数的调用形式:fwrite(buffer,size,count,fpt); 【说明】:burrer 为输出数据在内存中的起始地址;size 为要输出的字节数; count 指定一次操作输出多少个 size 字节的数据项;fpt 与被操作的文件相关联的文 件指针; 【功能】:从以 buffer 为首地址的内存中取出 count 次 size 长度(共 count*size 字节) 输出到 fpt 关联的文件中。函数正常操作时返回值为输出的项数,出错时返回值为-1。 6.数据块输入函数 fread() 函数调用的形式: fread(buffer,size,count,fpt); 【说明】:参数与 5.fwrite()函数相同; 7.文件定位 ⒈ rewind 函数 void rewind(FILE *fp); 功能:把文件定位指针重新返回到文件开头。此函数没有返回值。 ⒉ ftell 函数 ftell( fpt ); 功能:返回文件定位指针的当前位置,即文件头的位移量(长整型),文件头的位置 定为 0。函数的参数是文件的指针。如果 ftell 函数返回值为-1L,表示出错。 ⒊ fseek 函数 int fseek(FILE *fp,long offset,int origin); 功能:改变文件的位置指针。 同样使用前面 定义好的结构 体变量来给 student1 变 量 赋值 给出结构体数 组定义,同时 对结构体数组 元素进行赋 值。 课堂教学小结: 通过本讲,使学生能掌握文件的指针、文件的打开和关闭、文件的读/写操作,文件的 主要一些函数的功能及使用。 第 1 次 第 4 页

已到末页,全文结束
刷新页面下载完整文档
VIP每日下载上限内不扣除下载券和下载次数;
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
相关文档