C语言程序设计 教学课件 ppt 作者 陆蓓 主编 龙之一 易幼庆 赵建锋 副主编 郑 宁 主审 《C语言程序设计》第十章

上传人:E**** 文档编号:89190677 上传时间:2019-05-21 格式:PPT 页数:47 大小:1.79MB
返回 下载 相关 举报
C语言程序设计 教学课件 ppt 作者 陆蓓 主编 龙之一 易幼庆 赵建锋 副主编 郑 宁 主审 《C语言程序设计》第十章_第1页
第1页 / 共47页
C语言程序设计 教学课件 ppt 作者 陆蓓 主编 龙之一 易幼庆 赵建锋 副主编 郑 宁 主审 《C语言程序设计》第十章_第2页
第2页 / 共47页
C语言程序设计 教学课件 ppt 作者 陆蓓 主编 龙之一 易幼庆 赵建锋 副主编 郑 宁 主审 《C语言程序设计》第十章_第3页
第3页 / 共47页
C语言程序设计 教学课件 ppt 作者 陆蓓 主编 龙之一 易幼庆 赵建锋 副主编 郑 宁 主审 《C语言程序设计》第十章_第4页
第4页 / 共47页
C语言程序设计 教学课件 ppt 作者 陆蓓 主编 龙之一 易幼庆 赵建锋 副主编 郑 宁 主审 《C语言程序设计》第十章_第5页
第5页 / 共47页
点击查看更多>>
资源描述

《C语言程序设计 教学课件 ppt 作者 陆蓓 主编 龙之一 易幼庆 赵建锋 副主编 郑 宁 主审 《C语言程序设计》第十章》由会员分享,可在线阅读,更多相关《C语言程序设计 教学课件 ppt 作者 陆蓓 主编 龙之一 易幼庆 赵建锋 副主编 郑 宁 主审 《C语言程序设计》第十章(47页珍藏版)》请在金锄头文库上搜索。

1、第十章 文件,主要内容,文件概述,1,文件的打开与关闭,2,文件读/写函数,3,文件定位,4,本章要点,文件指针 文件的打开与关闭 文件的读/写 文件的定位,本章学习目标,了解文件内数据的组织形式 了解文件指针的作用 掌握fopen函数和fclose函数的使用方法 掌握文件读/写函数的使用方法 掌握rewind函数和fseek函数的使用方法,10.1 文件概述,文件一般就是指在外部存储器上存放的数据的集合。 硬盘就是外部存储器中最重要的一种。 我们可以使用C语言库函数中的文件操作函数从硬盘中已存在的某个文件中读入数据,或者建立一个新文件,把运算结果写入其中,就可以实现运算结果的永久保存了。,1

2、0.1.1 数据文件的存储形式,C语言所操作的数据文件根据数据组织形式分为两类。 (1)文本文件:数据以字符形式存放。在这种文件中,所有的数据都被看成字符,存储其对应的ASCII码值。一个字节存放一个字符。,10.1.1 数据文件的存储形式(续),(2)二进制文件:以二进制形式存放数据。可以使用多个字节存储一个整数或实数。 例如:整数168在二进制文件中存储时,会把其直接转化为二进制形式10101000存放。(假设整数占4个字节),10.1.2文件类型指针,C语言中文件的操作是通过文件指针来实现的,该指针为FILE*类型。 FILE类型是在“stdio.h”头文件中定义的一种结构体类型。该结构

3、体类型包含一些成员用来描述文件的名字、状态、位置等信息。 对于每个已打开的文件,系统都会自动创建一个该类型的结构体。而文件指针就是指向这种结构体的指针。 定义文件类型指针变量形式为: FILE *fp;,10.2 文件的打开与关闭,C语言如果想要对某一个文件进行操作时,也需要先打开该文件,打开的方式就是调用文件打开函数,对该文件操作结束后,应及时调用文件关闭函数关闭该文件。,10.2.1 文件打开函数fopen,函数的原型 FILE * fopen(char * filename , char *mode); filename:该参数是一个字符串,指定要打开的文件名,其中可以包含文件的位置信息

4、。 例如 ”abc.txt” ”c:clanguagetest.dat” mode:该参数是一个字符串,指定打开文件的使用方式。,10.2.1 文件打开函数fopen(续),fopen函数返回一个文件指针,我们可以定义一个文件类型指针变量来存储函数返回值。随后对文件进行其它操作时,将用到这个文件指针。 FILE *fp fp=fopen(“test.dat”, ”r”);,文件使用方式,文件使用方式(续),10.2.1 文件打开函数fopen(续),【例10-1】打开一个文本文件,/*程序10-1*/ #include #include void main() FILE *fp; if ( (

5、fp=fopen(“abc.txt”, “ r”) ) = NULL) printf(“文件abc.txt打开失败!n”); exit(EXIT_FAILURE) ; ,10.2.2 文件关闭函数fclose,函数原型为: int fclose(FILE * pfile) ; 其中文件指针必须已经存在,即已使用fopen函数打开了一个文件,并使该指针变量指向该文件。,10.2.2 文件关闭函数fclose(续),【例10-2】关闭文件,/*程序10-2*/ #include #include void main() FILE *fp; if ( (fp=fopen(“abc.txt”, “w”

6、) )= NULL) printf(“文件abc.txt打开失败!n”); exit(EXIT_FAILURE); fclose(fp); /*文件使用完毕,关闭文件*/ ,10.3 文件读/写函数,10.3.1文件读函数fgetc 类似于第三章中从键盘读入一个字符的函数getchar,fgetc是从指定的文件读入一个字符,赋给某一个变量。其函数原型为: int fgetc(FILE * pfile); 如果字符正确从文件中读出,则将该字符赋值给字符变量。如果文件已经读到末尾,即遇到文件结束符,函数返回一个文件结束标志EOF给字符变量,在stdio.h里面已定义EOF为-1;,10.3 文件读

7、/写函数(续),【例10-3】从文件读取一个字符,/*程序10-3*/ #include #include void main() char ch; FILE *fp; if ( (fp=fopen(“abc.txt”, “r”) )= NULL) printf(“文件abc.txt打开失败!n”); exit(EXIT_FAILURE); else ch=fgetc(fp); if( ch!=EOF ) putchar(ch); fclose(fp); ,10.3 文件读/写函数(续),10.3.2文件写函数fputc 类似于第三章向屏幕输出一个字符的函数putchar,fputc函数是向文

8、件写入一个字符。其函数原型为: int fputc(int c, FILE * pfile); 如果写入成功则返回刚刚写入的字符;如果写入失败,则返回EOF。,10.3 文件读/写函数(续),【例10-4】向文件写入一个字符,/*程序10-4*/ #include #include void main() char ch; FILE *fp; if ( (fp=fopen(“abc.txt”, “w”) )= NULL) printf(“文件abc.txt打开失败!n”); exit(EXIT_FAILURE); else ch= A; fputc(ch, fp); fclose(fp); ,

9、10.3 文件读/写函数(续),10.3.3文件读函数fgets 类似于第三章中从键盘读入一个字符串的函数gets,fgets是从指定的文件读取多个连续的字符。其调用形式为: fgets(字符数组名或字符型指针变量, 读取字符个数, 文件型指针变量); fgets函数会在读出的字符串末尾加上一个0作为结束标志,读出字符串的长度在计数时是包括这个0的。如果在读完字符串之前遇到了换行符(n)或文件末尾(EOF),则读出操作结束。fgets函数将读出的字符串放置到首地址为函数参数中给定的地址的内存区域。,10.3 文件读/写函数(续),【例10-5】从文件读取一个字符串,/*程序10-5*/ #in

10、clude #include void main() char ch100; FILE *fp; if ( (fp=fopen(“abc.txt”, “r”) )= NULL) printf(“文件abc.txt打开失败!n”); exit(EXIT_FAILURE); else fgets(ch, 30, fp); puts(ch); fclose(fp); ,10.3 文件读/写函数(续),10.3.4文件写函数fputs 类似于第三章向屏幕输出字符串的函数puts,fputs函数的功能是将一个字符串写入到指定的文件中。字符串末尾的0不会写入到文件中。若输出成功,则返回0值,失败时,返回E

11、OF值。 其调用形式为: fputs(字符串地址或字符串常量, 文件型指针变量);,10.3 文件读/写函数(续),【例10-6】向文件写入一个字符串,/*程序10-6*/ #include #include void main() char ch100= “Hello world!”; FILE *fp; if ( (fp=fopen(“abc.txt”, “w”) )= NULL) printf(“文件abc.txt打开失败!n”); exit(EXIT_FAILURE); else fputs(ch, fp); fclose(fp); ,10.3 文件读/写函数(续),10.3.5文件读

12、函数fread fread函数可以用来从文件中读取多个数据,且数据类型任意。若读取成功,函数返回读取数据的字节数。其调用形式为: fread(数组地址, 数据的长度, 读取数据的个数, 文件型指针变量); 数组地址为存储读出数据的数组的首地址。 数据的长度是指某种类型的一个数据在内存中占几个字节的存储空间。可以使用运算符sizeof计算某种类型数据所占字节数。,10.3 文件读/写函数(续),【例10-7】从文件读取多个数据,/*程序10-7*/ #include #include void main() int num20, i ; FILE *fp; if ( (fp=fopen(“abc

13、.dat”, “rb”) )= NULL) printf(“文件abc.dat打开失败!n”); exit(EXIT_FAILURE); else fread(num, sizeof(int), 50, fp); for(i=0; i50; i+) printf(“ %d ”,numi); fclose(fp); ,10.3 文件读/写函数(续),10.3.6文件写函数fwrite fwrite函数可以用来向文件中写入多个数据,且数据类型任意。若写入成功,函数返回写入的字节数。其调用形式为: fwrite(数组地址, 数据长度, 写入数据的个数, 文件型指针变量); 其中数组地址为存储写入数据

14、的数组的首地址。,10.3 文件读/写函数(续),【例10-8】向文件中写入多个数据,/*程序10-8*/ #include #include void main() int num100, i ; FILE *fp; if ( (fp=fopen(“abc.dat”, “wb”) )= NULL) printf(“文件abc.dat打开失败!n”); exit(EXIT_FAILURE); else for(i=0; i50; i+) numi=i; fwrite(num, 4, 50, fp); fclose(fp); ,10.3 文件读/写函数(续),10.3.7文件读函数fscanf

15、fscanf是从文件中读取指定类型的数据。其调用方式为: fscanf(文件型指针变量, 格式字符串, 地址列表); 其中,格式字符串的组成和第三章中介绍的一样。 地址列表给出了用于存放读取数据的各个存储空间的地址,可以使用&运算得到变量的地址。,10.3 文件读/写函数(续),【例10-9】从文件中读取多个数据,/*程序10-9*/ #include #include void main() int a; float b; char c; FILE *fp; if ( (fp=fopen(“abc.dat”, “r”) )= NULL) printf(“文件abc.dat打开失败!n”);

16、exit(EXIT_FAILURE); else fscanf(fp, “%d, %f, %c”, ,10.3 文件读/写函数(续),10.3.8文件写函数fprintf fprintf函数可以向文件中写入指定类型的数据。其调用方式为: fprintf(文件型指针变量, 格式字符串, 输出列表); 其中,格式字符串的组成和第三章中介绍的一样。 输出列表给出了要向文件中写入的各个数据。,10.3 文件读/写函数(续),【例10-10】向文件中写入多个数据,/*程序10-10*/ #include #include void main() int a=1; float b=6.8; char c=A; FILE *fp; if ( (fp=fopen(“abc.dat”

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

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

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