资源描述:
《C语言第十九讲.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、C语言电子教案(十九)第十九讲第十三章文件主要内容:§13.1文件的概念§13.2文件类型的指针§13.3文件的打开和关闭§13.4文件的读写§13.5文件的定位§13.1文件的概念文件的创建方式:(1)通过文字处理软件或操作系统的文件管理功能;(2)通过程序语句创建。数据的输入和输出:在计算机中,数据的输入和输出都是相对于主机(即内存)而言。将数据从磁盘文件或输入设备读入内存称为输入,从内存写到磁盘文件或输出设备称为输出。一、文件的概念文件:存储在外部介质(如:软盘、硬盘、光盘等)上的数据的集合。操作系统都
2、是以文件为单位对数据进行管理的,文件又是以文件名作为标识符。在程序设计中,有时需要将磁盘上的数据读入内存中,有时需要将内存中的数据写入磁盘中,这就要用到文件。如:我们可以将一个班的学生的考试成绩写入数据文件,这样在程序设计中,多个用户都可以使用这样的数据文件,而不必多次输入造成重复劳动。二、文件的组织形式文件可分为ASCII码文件和二进制文件。ASCII文件:又称为文本文件(.txt)文件,其中每个字节存放一个ASCII码字符。ASCII码文件占存储空间大,且要花费时间转换(要进行二进制形式与ASCII码形式之间的
3、转换)二进制文件:是将内存中的数据按在内存中的存储形式原样输出到磁盘上存放。二进制文件节省存储空间,不需要转换,但不能直接输出字符形式,也就是说,不能直观地显示文件的内容二、文件的组织形式如:整数1000在ASCII文件中:按照4个字符('1','0','0','0')存储,占4个字节。分别为:001100010011000000110000001100001000=512+256+128+64+32+0+8+0+0+0=(0000001111101000)2'1'的ASCII码值为49=32+16+0+0+0
4、+1在二进制文件中:是按数据在内存中的存储形式(即按补码)存储的,占2个字节,分别为:0000001111101000§13.2指向文件的指针指向文件的指针的定义:FILE*变量名;如:FILE*fp;则定义了指针变量fp是一个指向文件的指针。注意:使用FILE定义指向文件的指针时,必须包含头文件stdio.h§13.3文件的打开和关闭文件在使用之前,应当先打开,使用之后应将文件关闭,以防数据被破坏。文件的打开和关闭是使用系统定义的函数来实现的。打开文件的函数是:fopen()函数;关闭文件的函数是:fcl
5、ose()函数。一、文件的打开方法:FILE*fp;fp=fopen(文件名,打开方式);文件的打开方式:"r":文本文件只读"w":文本文件只写"a":文本文件追加"rb":二进制文件的只读"r+":二进制文件可读可写打开文件并使指针指向文件首打开文件并使指针指向文件首打开文件并使指针指向文件尾一、文件的打开例如:FILE*fp;fp=fopen("E:test.dat","w");表示将E盘根目录下的test.dat文件,按只写的方式打开。如果磁盘上有此文件,打开并将文件指针指向文件首;如果磁盘上无此文件
6、,创建一个新文件并打开。文件的打开的常用格式:if((fp=fopen("aa","r"))==NULL){printf("cannotopenthisfile");exit(0);}二、文件的关闭方法:fclose(文件指针);例如:fclose(fp);将指针fp指向的文件关闭。所谓文件关闭就是文件指针与文件的指向关系中断。§13.4文件的读写打开文件后,可对文件进行读写操作,对文件的读写操作包括以下几种:fgetc()函数:将一个字符由磁盘文件中读入到内存fputc()函数:将一个字符写入磁盘文件fr
7、ead()函数:将一组数据由磁盘文件读入到内存fwrite()函数:将一组数据写入磁盘文件fscanf()函数:将一组数据由磁盘文件中读入到内存fprintf()函数:将一个数据写入磁盘文件§13.4文件的读写由于CPU只能与内存有直接数据交换,因此读出文件中的数据不能直接从文件到屏幕,而文件的写入操作也不能直接由键盘到文件,必须经过内存才能进行。文件的读入操作一般包括:先从文件读入到内存再从内存中将数据显示到屏幕。文件的写入操作一般包括:先从键盘输入到内存再从内存写入到文件一、fgetc(getc)函数—
8、磁盘文件字符输入函数调用格式:fgetc(fp);功能:从fp所指定的文件中读入一个字符到内存。返回值:如果输入成功,返回所读入的字符;若输入不成功,则返回EOF(-1)二、fputc(putc)函数—磁盘文件字符输出函数调用格式:fputc(ch,fp);功能:将字符ch写入fp所指定的数据文件中。返回值:如果输入成功,返回所写入的字符;若输入不成功,则返