全国计算机等级考试培训教材(二级C)课件 ch12 文件_第1页
全国计算机等级考试培训教材(二级C)课件 ch12 文件_第2页
全国计算机等级考试培训教材(二级C)课件 ch12 文件_第3页
全国计算机等级考试培训教材(二级C)课件 ch12 文件_第4页
全国计算机等级考试培训教材(二级C)课件 ch12 文件_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

计算机等级考试第十二章文件高等院校公共课系列精品教材C语言文件的概念01ONE12.1C语言文件的概念1考点1文件的概念和文件指针1.文件的相关概念文件(file),一般指存储在外部介质上的数据集合。在前面的章节中,编写C语言程序,主要通过键盘输入给变量赋值,通过显示器显示输出数据。如果我们想读取磁盘已有的数据,需要读取磁盘文件,同时也可以将数据保存到文件中,进行永久存储。其实,以前我们从键密输入,输出到显示器,利用了系统文件,键盘是标准输入文件,显示器是标准输出文件。文件的3种分类方法如下。(1)按数据存放形式分为ASCII文件(文本文件)和二进制文件。(2)按存取方式分为顺序方式存取和随机方式存取。(3)按处理方式分为缓冲文件和非缓冲文件。12.1C语言文件的概念1考点1文件的概念和文件指针ASCII文件是指,数据按ASCII码转化为一串字符,一个字符占一个字节,如10000按字符1、0、0、0、0这5个字符存储,占用5个字节;二进制文件是指数据不需要任何转换,直接按二进制存储。数据10000为整型数据,占4个字节。10000在内存、ASCII文件、二进制文件中存储图见图(0的ASCII码值为48)。12.1C语言文件的概念1考点1文件的概念和文件指针2.文件类型指针每个被使用的文件都在内存中开辟相应的文件信息区,用于存放文件的相关信息,包括文件的名称、文件读写方式等。这些信息以结构体变量进行保存,该结构体类型由系统声明力FILE,FILE信息包含在头文件“stdio.h”,中,在程序中直接利用FILE定义变量:FILE*fp;fp是一个指向FILE类型结构体的指针变量,通过文件指针变量找到与它相关的文件。指向文件的指针变量并不是指向外部介质上的数据的开头,而是指向内存中的文件信息区开头,具体我们可以不了解,但是要知道fp与文件进行了关联。文件的打开与关闭02TWO12.2文件的打开与关闭1考点2

fopen()函数和fclose()函数对文件读写之前应该“打开”该文件,读写完毕应该“关闭”该文件。在编写程序时,打开文件,实际上是建立了文件与文件指针的关联,这样就可以通过指针文件对文件进行读写。所谓关闲,就是文件读写完毕,撤销文件与指针文件的关联,不再进行读写操作。fopen函数(1)fopen函数的调用方式:fopen(文件名,使用文件方式);例如:fopen(“filename”,“r");表示要打开的文件为“filename”,使用文件方式为r(r代表read,即读),fopen函数的返回值为指向filename文件的指针。通常将函数fopen函数的返回值赋值给一个指向文件的指针变量。12.2文件的打开与关闭1考点2

fopen()函数和fclose()函数(2)文件的使用方式见表。12.2文件的打开与关闭1考点2

fopen()函数和fclose()函数2.fclose()函数在使用一个文件后应该关闭它,以防止它被误用。关闭文件,实际是断开了文件指针与文件信息区域的关联,断开后不能通过文件指针进行读写该文件,除非再次打开,重新建立指针与文件的关联。(1)调用方式:fclose(fp);。(2)顺利完成关闭操作,返回值为0,否则返回EOF(-1)。顺序读写数据03THREE12.3顺序读写数据文件打开之后,就可以对文件进行读写了。顺序读写是,先写入的数据放在文件的前面位置,后写入的数据放在后面。也就是对顺序文件的读写顺序与数据在文件中的实际物理顺序一致。对文件基本读写包括以下内容。(1)读写一个字符。(2)读写字符串。(3)按格式读写字符。(4)用二进制方式向文件读写一组数据。12.3顺序读写数据1考点3fputc()函数和fgetc()函数向文本文件读写一个字符的函数见表。12.3顺序读写数据1考点4

fgets()函数和fputs()函数fputs()函数实现写入一个字符,重复操作可以逐个向文件中写入字符,能否一次读写字符串呢?可以利用fputs实现一次写一个字符串。读写一个字符串的函数见表。说明:(1)fgets(str,n,fp);从fp指向的文件输入n-1个字符,在最后加一个’\0’,得到字符串共有n个字符,把它们放到字符数组str中。(2)fputs("China”,fp);把字符串"China"输出到fp指向的文件,字符串未尾’\0’不输出。12.3顺序读写数据1考点5fscanf()函数和fprintf()函数用格式化的方式读写文件与scanf和printf功能相似,只是读写的文件不一定是键盘和显示器,还可以是磁盘当中文件。fscanf(文件指针,格式控制宇符串,輸入列表);fprintf(文件指针,格式控制宇符串,输出列表);文件指针如果指向标准文件,fscanf(文件指针,格式控制字符串,输入列表)中的文件指针为stdin,则fscanf和scanf功能相同,从键盘输入;同样,如果fprintf(文件指针,格式控制字符串,输出列表)中的文件指针为stdout,则将数据输出到显示器。12.3顺序读写数据1考点6

fread()函数和fwrite()函数在程序中不仅需要一次输入、输出一个数据,而且常常需要一次输入、输出一组数据(如结构变量和数组),C语言可以通过fread函数从文件中读一个数据块,用fwrite函数向文件写一个数据块。在读写时是以二进制形式进行的。12.3顺序读写数据1考点6

fread()函数和fwrite()函数fread函数fread函数的功能是从文件中读取数据块,其调用函数为:fread(buffer,size,count,fp);说明:(1)butfer是一个指针,存放输入数据的首地址;size是每个数据块的字节数;count是每次读入数据块的个数;fp是文件指针。(2)此函数的功能是从fp所指向的文件的当前位置开始读取,一次读取size个字节,重复读取count次,并将读取的数据存放到buffer为首地址的内存中;同时,文件内读写位置移动sizeXcount个字节。(3)如果函数fread读取成功,函数返回值为count。12.3顺序读写数据1考点6

fread()函数和fwrite()函数2.fwrite函数fwrite函数的功能是向文件中写数据块,其调用函数为:fwrite(buffer,size,count,fp);说明:(1)buffer是一个指针,用于存放读取数据的首地址;size是每个数据块的字节数;count是每次读取数据块的个数:fp是文件指针。(2)此函数的功能是从fpbuffer开始,一次读取size个字节,重复读取count次,并将读取的数据存放到fp所指向的文件中;同时,文件内读写位置移动sizeXcount个字节。(3)如果函数fwrite輸出成功,则函数返回值count。随机读写文件04FOUR12.4随机读写文件顺序读取文件是从头到尾进行读取,容易理解,但效率不高,如想找到第100个数据,必须先找到前99个,再找第100个,数据越大,查找靠后数据效率越低。随机访问则不需要按顺序逐个读取,而是直接访问任意指定位置的数据,效率大大提高。介绍一个新概念“文件位置指针”,前面介绍的文件指针是FILE类型的指针变量,实现与文件的关联,而文件位置指针则指文件内要读写操作的位置。通常打开一个文件,文件位置指针指向文件的开头。当文件位置指针指向文件末尾,表示文件结束。文件位置指针见图。12.4随机读写文件1考点7rewind()函数1考点8fseek()函数(1)调用形式:rewind(fp);(2)功能:使文件位置指针重新返回文件的开头。(1)功能:将文件的位置指针移动到指定位置。(2)调用形式:Fseek(文件指针,位移量,起始点)

起始点可以用0、1、2所代表的文件头、文件当前位置、文件末尾;位移量是以起始点力基点,向前移动的位移量,为long型数据,

温馨提示

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

评论

0/150

提交评论