C语言程序设计教程(修订本) 第9章文件_第1页
C语言程序设计教程(修订本) 第9章文件_第2页
C语言程序设计教程(修订本) 第9章文件_第3页
C语言程序设计教程(修订本) 第9章文件_第4页
C语言程序设计教程(修订本) 第9章文件_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第9章文件,9.1文件的概念9.2文件的打开与关闭9.3文件的读写9.4文件的定位9.5程序举例,9.1文件的概念一般来说,文件是指存储在外存储器上的数据的集合。9.1.1文本文件与二进制文件根据文件中数据的存储形式,一般又将文件分为文本文件和二进制文件两种。文本文件又称为ASCII文件。在这种文件中,每个字节存放一个字符的ASCII码值。,返回目录,9.1.2缓冲文件系统C语言编译系统对文件的处理有两种方式,分别采用缓冲文件系统方式与非缓冲文件系统方式进行。所谓缓冲文件系统是指系统自动地为正在被使用的文件在内存中开辟一个缓冲区。当需要向外存储器中的文件输出数据时,必须先将数据送到为该文件开辟的缓冲区中,当缓冲区充满以后才一起送到外存储器中。当需要对外存储器中的文件读入数据进行处理时,也首先从外存储器一次将一批数据读入缓冲区(将缓冲区充满),然后再从缓冲区中将数据逐个读入。,9.1.3文件类型指针在C语言的缓冲文件系统中,用文件类型指针来标识文件。定义文件类型指针的一般形式为FILE*指针变量名;其中FILE是C编译系统定义的一种结构体类型,其中的成员用于存放有关文件的一些信息。指针变量名用于指向一个文件,实际上是用于存放文件缓冲区的首地址。例如,FILE*fp;定义了一个结构体FILE类型的指针变量fp。,一般来说,对文件操作有以下3个方面:(1)打开文件在计算机内存中开辟一个缓冲区,用于存放被打开文件的有关信息。(2)文件处理包括:读写、定位等操作。(3)关闭文件将缓冲区中的内容写回到外存(磁盘),并释放缓冲区。,9.2文件的打开与关闭9.2.1文件的打开在C语言中,打开一个文件的一般形式如下:FILE*fp(或其他指针变量名);fpfopen(“文件名”,“文件使用方式”);为了打开一个文件,首先要为该文件定义一个文件类型指针,然后用C语言提供的fopen函数打开文件。fopen函数有两个参数:“文件名”与“文件使用方式”。它们均是字符串。,返回目录,“文件使用方式”可以规定以下几种对文件的访问形式:r只读若文件不存在,则返回空指针;w只写若指定的文件已存在,则其中原有内容被删去;否则创建一个新文件;a追加向文件尾增加数据。若指定的文件不存在,则创建一个新文件;r读写指定的文件必须已存在,否则返回NULL;w读写若指定的文件已存在,则其中原有内容被删去;a读写追加写。,9.2.2文件的关闭对文件操作完成后,要关闭文件。在C语言中,关闭文件的一般形式如下:fclose(fp);fclose函数的主要功能是将由fp指向的缓冲区中的数据存放到外存储器的文件中,然后释放该缓冲区。,9.3文件的读写9.3.1文件读函数对文件进行读操作,是指从外存储器的文件中向程序输入数据。在C语言中,读文件的函数主要有以下几个。,返回目录,1.fgetc函数该函数的功能是,从指定的文件读入一个字符。例如,charc;cfgetc(fp);/*假设该文件已打开,下同*/,2.fread函数该函数的功能是,从指定的文件中读入一组数据。其形式为fread(buffer,size,count,fp);其中:buffer存放读入数据的内存首地址;Size每个数据项的字节数;count数据项个数;fp文件类型指针。,3.fscanf函数该函数的功能是,从指定的文件中格式化读数据。其一般形式为fscanf(文件指针,格式控制,地址表);这个函数与格式输入函数scanf很相似,它们的区别就在于,scanf函数是从键盘输入数据,而fscanf函数是从文件读入数据,因此在fscanf函数参数中多了一个文件指针,用于指出从哪个文件读入数据。,9.3.2文件写函数1.fputc函数该函数的功能是,将一个字符写到指定的文件中。其形式为fputc(c,fp);若写成功,则返回已输出的字符,否则返回EOF。,2.fwrite函数该函数的功能是,将一组数据写到指定的文件中。其形式为fwrite(buffer,size,count,fp);其中:buffer输出数据的首地址;size每个数据项的字节数;count数据个数;fp文件类型指针。,3.fprintf函数该函数的功能是,格式化写数据到指定的文件中。其形式为fprintf(文件指针,格式控制,输出表);这个函数与格式输出函数printf很相似,它们的区别就在于,printf函数是将数据输出到显示屏幕上,而fprintf函数是将数据输出到文件中,因此在fprintf函数参数中多了一个文件指针,用于指出将数据输出到哪个文件中。,9.4文件的定位1rewind函数该函数的功能是,将文件的读写指针移动到文件的开头。其形式为rewind(fp);其中fp是已经打开的文件指针。,返回目录,2fseek函数该函数的功能是,将文件的读写指针移动到指定的位置。其形式为fseek(文件指针,偏移量,起始位置);其中各参数的意义如下:起始位置是指移动文件读写指针的参考位置,它有以下3个值:SEEK_SET或0表示文件首SEEK_CUR或1表示当前读写的位置SEEK_END或2表示文件尾,3ftell函数该函数的功能是,返回文件的当前读写位置(出错返回1L)。其形式为ftell(fp);,9.5程序举例,例9.6统计文件letter.txt中的字符个数。C程序如下:#includestdio.hmain()longcount0;FILE*fp;if(fpfopen(letter.txt,r)NULL)printf(cannotopenthisfile!n);exit(0);fgetc(fp);while(!feof(fp)fgetc(fp);countcount1;printf(count%ld

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论