C语言程序设计(第二版)-电子教案-张昕 第9章 文件

上传人:E**** 文档编号:89422844 上传时间:2019-05-25 格式:PPT 页数:56 大小:1MB
返回 下载 相关 举报
C语言程序设计(第二版)-电子教案-张昕 第9章 文件_第1页
第1页 / 共56页
C语言程序设计(第二版)-电子教案-张昕 第9章 文件_第2页
第2页 / 共56页
C语言程序设计(第二版)-电子教案-张昕 第9章 文件_第3页
第3页 / 共56页
C语言程序设计(第二版)-电子教案-张昕 第9章 文件_第4页
第4页 / 共56页
C语言程序设计(第二版)-电子教案-张昕 第9章 文件_第5页
第5页 / 共56页
点击查看更多>>
资源描述

《C语言程序设计(第二版)-电子教案-张昕 第9章 文件》由会员分享,可在线阅读,更多相关《C语言程序设计(第二版)-电子教案-张昕 第9章 文件(56页珍藏版)》请在金锄头文库上搜索。

1、,本章导读 文件是程序设计中极为重要的一个概念,文件一般指存储在外部介质上的数据的集合。通过文件可以大批量处理数据,可以长时间的将信息存储起来。本章通过文件操作实例分析着手,使读者首先对文件的操作过程有一个初步的了解,明白文件操作的重要性,进而再深入的学习C语言有关文件的操作 。, C语言程序设计 (Visual C+ 6.0环境),返回本书目录,第9章 文件,本章主要知识点 (1)文件操作的C程序实例 (2)文件的打开与关闭 (3)文件的读写和定位 (4)文件出错的检测,第9章 文件, C语言程序设计 (Visual C+ 6.0环境),返回本章导读,9.2 文件的打开与关闭,9.3 文件的

2、读写,9.5 文件出错的检测,9.4 文件的定位,9.1 文件操作的C程序实例,9.6 综合实训, C语言程序设计 (Visual C+ 6.0环境),返回本章目录,9.1.2 C文件概述,9.1.3 文件类型指针,9.1.1 文件操作的C程序实例,9.1 文件操作的C程序实例,9.1.1 文件操作的C程序实例, C语言程序设计 (Visual C+ 6.0环境),返回本节目录,1. C程序实例(1),2. C程序实例(2),3. C程序实例(3),9.1.1 文件操作的C程序实例, C语言程序设计 (Visual C+ 6.0环境),返回本节目录,1.C程序实例1,【例9.1】读出文件fil

3、e.txt中的字符。 程序文件名为l9_1.cpp。 1) #include “stdio.h“ #include void main() char ch; /*定义一个字符变量ch*/ FILE *fp; /*定义一个文件类型的指针变量fp*/ fp=fopen(“file.txt“,“r“);/*打开文本文件file*/ if(fp=NULL) /*打开文件失败*/ printf(“cannot open this filen“); exit(0); ,9.1.1 文件操作的C程序实例, C语言程序设计 (Visual C+ 6.0环境),返回本节目录,ch=fgetc(fp); /*读出

4、文件中的字符并赋予变量ch*/ while(ch!=EOF) /*判断文件是否结束*/ putchar(ch); /*输出从文件中读出的字符*/ ch=fgetc(fp); /*读出文件中的字符并赋予变量ch*/ fclose(fp); /*关闭文件*/ ,建立文本文件,在文件中输入一些文字,保存文件名为file,然后与程序文件放在同一目录下。如右图所示:,9.1.1 文件操作的C程序实例, C语言程序设计 (Visual C+ 6.0环境),返回本节目录,程序执行结果为:,从文件file中读出的文字,9.1.1 文件操作的C程序实例, C语言程序设计 (Visual C+ 6.0环境),返回

5、本节目录,【例9.2】将用户从键盘输入的用户名和密码写到文件user.x中。 程序文件名为l9_2.cpp。 #include “stdio.h“ #include struct userinfo /*定义结构体*/ char username10; char password12; stu; void main() FILE *fp; /*定义文件指针fp*/ fp=fopen(“user.x“,“wb“); /*以二进制方式打开文件user.x*/ if(fp=NULL) /*打开文件失败*/,2.C程序实例2, printf(“cannot open this filen“); exit

6、(0); printf(“Please input your username:“); scanf(“%s“, /*关闭文件*/ 例如用户根据提示信息输入如下: Please input your username:student Please input your password:12345678 则执行结果为先在程序文件的目录下建立文件user.x,然后将字符串 “student”和“12345678”写入该文件。,9.1.1 文件操作的C程序实例, C语言程序设计 (Visual C+ 6.0环境),返回本节目录,【例9.3】从文件user.x中读取用户名和密码。 程序文件名为l9_3

7、.cpp。 #include “stdio.h“ #include struct userinfo /*定义结构体*/ char username10; char password12; stu;,9.1.1 文件操作的C程序实例, C语言程序设计 (Visual C+ 6.0环境),返回本节目录,3.C程序实例3,void main() FILE *fp; /*定义文件类型指针fp*/ fp=fopen(“user.x”,“rb”); /*以二进制只读方式打开文件user.x*/ if(fp=NULL) printf(“cannot open this filen“); exit(0); f

8、read( /*关闭文件*/ ,9.1.1 文件操作的C程序实例, C语言程序设计 (Visual C+ 6.0环境),返回本节目录,假如user.x中的数据是实例2所输入的信息,则输出结果为: your username:student your password:12345678,9.1.2 C文件概述, C语言程序设计 (Visual C+ 6.0环境),返回本节目录,C语言把磁盘文件看作是字符(或字节)的序列,根据数据的组织形式(存储信息的形式),文件可分为ASC码文件和二进制文件。ASC码文件又称为文本文件,该文件是由一个个字符组成,每一个字节存放一个ASC码,代表一个字符。二进制文

9、件是把内存中的数据按其在内存中的存储形式原样放入磁盘存放。 例如,现有一个整数1234,如果按ASC码形式存入文件,要占4个字节,其存储形式如下:,9.1.2 C文件概述, C语言程序设计 (Visual C+ 6.0环境),返回本节目录,如果按二进制形式存入文件,则只占2个字节,其存储形式 与内存中的存储形式相同,如下:,由以上举例不难看出用ASC码形式存入文件时一个字节代表一个字符,因而便于对字符进行逐个处理,也便于输出,但一般占存储空间较大,而且要花费二进制形式与ASC码之间的转换时间。用二进制形式存入文件则可以节省外存空间和转换时间,但一个字节并不对应一个字符,所以如果在屏幕上显示经常

10、显示的是乱码。,9.1.3 文件类型指针, C语言程序设计 (Visual C+ 6.0环境),返回本节目录,C语言程序可以同时处理多个文件,为了对每一个文件进行有效的管理,在打开一个文件时,系统会自动地在内存中开辟一个区,用来存放文件的有关信息(如文件名、文件状态等)。这些信息保存在一个结构体变量中,该结构体是由系统定义的,取名为FILE。FILE定义在头文件stdio.h中 。 对每一个要进行操作的文件,都需要定义一个指向FILE类型结构体的指针变量,该指针称为文件类型指针,文件类型指针的定义方法如下: FILE *指针变量; 如:FILE *fp; fp是一个指向FILE类型结构体的指针

11、变量。当fp和某个文件建立关联之后,通过fp 即可找到存放该文件信息的结构变量,然后按结构变量提供的信息找到该文件, 实施对文件的操作。, C语言程序设计 (Visual C+ 6.0环境),返回本章目录,9.2.2 文件关闭函数fclose(),9.2.1 文件打开函数fopen(),9.2 文件的打开与关闭,9.2.1 文件打开函数fopen(), C语言程序设计 (Visual C+ 6.0环境),返回本节目录,在使用一个文件之前,必须先打开它,然后才能对它进行读写操作,从9.1.1的C程序实例我们也能看出,每个程序都用到了fopen函数,该函数的功能就是用来打开一个文件。函数fopen

12、的使用格式为:,FILE *文件指针变量; 文件指针变量=fopen(“文件名”, “文件使用方式”);,fopen函数的作用是以指定的方式打开指定文件。如果文件打开成功,返回一个文件类型指针,如果文件打开失败,则返回一个空指针NULL。 “文件名”指要打开文件的名称。 “文件使用方式”指文件的类型和操作要求。如下表所示:,9.2.1 文件打开函数fopen(), C语言程序设计 (Visual C+ 6.0环境),返回本节目录,9.2.1 文件打开函数fopen(), C语言程序设计 (Visual C+ 6.0环境),返回本节目录,由于文件是独立于程序之外不易被控制的,所以调用文件是程序中

13、最易出错的地方。打开文件也是如此,当打开文件出错时,函数fopen会返回一个空指针NULL,出错原因可能是以“r”方式打开一个不存在的文件,或者是磁盘已满等。一旦文件打开出错,后边的程序也将无法执行,好的习惯是先检查打开文件时是否出错,如果有错则提示给用户,并终止程序的执行,等用户检查出错误,修改后再运行该程序。所以通常打开文件的方法是:,FILE *文件指针变量; 文件指针变量=fopen(“文件名”, “文件使用方式”); If(文件指针变量= =NULL) printf(“cannot open this filen”); exit(0); ,9.2.2 文件关闭函数fclose(),

14、C语言程序设计 (Visual C+ 6.0环境),返回本节目录,在使用完一个文件后应该即时关闭它,这是一个程序设计者应养成的良好习惯。如果使用完没有关闭文件,则不仅占用系统资源,还可能造成文件被破坏。关闭文件的函数是fclose(),其使用方法为: fclose(文件指针变量); fclose用来关闭文件指针变量所指向的文件。该函数如果调用成功,返回数值0,否则返回一个非零值。 如:fclose(fp); 关闭文件后,文件类型指针变量将不再指向和它所关联的文件,此后不能再通过该指针对原来与其关联的文件进行读写操作,除非再次打开该文件,使该指针变量重新指向该文件。, C语言程序设计 (Visu

15、al C+ 6.0环境),返回本章目录,9.3.2 字符串读写函数,9.3.1 单个字符读写函数,9.3 文件的读写,9.3.4 格式化读写函数,9.3.3 数据块读写函数,9.3.5 整数读写函数,9.3.1 单个字符读写函数, C语言程序设计 (Visual C+ 6.0环境),返回本节目录,1.读字符函数fgetc(),该函数的使用方法为: 字符变量=fgetc(文件指针变量); 函数fgetc的作用是从文件指针变量指向的文件中读取一个字符。该函数如果调用成功,返回读出的字符,文件结束或出错时返回EOF(-1) 如:ch=fgetc(fp); 其中,ch是字符变量,fp为文件指针变量,fgetc函数将从fp指向的文件中读出一个字符并赋给变量ch。 在fgetc()函数调用中,读取的文件必须是以读或读写方式打开。,9.3.1 单个字符读写函数, C语言程序设计 (Visual C+ 6.0环境),返回本节目录,2.写

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号