《计算机程序设计(C语言)》第八章第一节 C文件概述_第1页
《计算机程序设计(C语言)》第八章第一节 C文件概述_第2页
《计算机程序设计(C语言)》第八章第一节 C文件概述_第3页
《计算机程序设计(C语言)》第八章第一节 C文件概述_第4页
《计算机程序设计(C语言)》第八章第一节 C文件概述_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

第八章第一节8.1C文件概述8.1C文件概述“文件”就是指一组相关数据的有序集合。给这个数据集一个名称,叫做文件名。实际上在前面我们已经多次使用了各种文件,例如源程序文件、目标文件、可执行文件、头文件等。文件通常是保存在外部存储介质(如硬盘、U盘、光盘等)上的,在使用时才调入到内存中来进行使用,所以能够长期保存。8.1.1文件分类从不同的角度可对文件作不同的分类。1、从用户的角度看,文件可分为普通文件和设备文件两种。普通文件是指保存在外部存储介质上的一个有序数据集,可以是源文件、目标文件、可执行程序文件等;也可以是一组等待输入处理的原始数据,或者是一组要输出的结果。对于源文件、目标文件、可执行程序文件可以称作程序文件,对输入输出的数据可称作数据文件。8.1.1文件分类设备文件是指与主机相联的各种外部设备,如显示器、打印机、键盘等。在操作系统中,把外部设备也看作是一个文件来进行管理,把它们的输入、输出等同于对磁盘文件的读和写。通常把显示器定义为标准输出文件,一般情况下在屏幕上显示有关信息就是向标准输出文件输出。如前面经常使用的printf,putchar函数就是这类输出。8.1.1文件分类键盘通常被指定为标准的输入文件,从键盘上输入就意味着从标准输入文件上输入数据。如scanf,getchar函数就属于这类输入。8.1.1文件分类2、从文件存放时编码的方式来看,文件可分为文本文件(ASCII码文件)和二进制文件两种。文本文件在存放时每个字符对应一个字节,用于存放对应的ASCII码。例如,数5678的存储形式为:ASCII码:00110101001101100011011100111000十进制码:5678共占用4个字节。8.1.1文件分类ASCII码文件可在屏幕上按字符显示,例如源程序文件就是文本文件,用记事本工具可显示文件的内容。由于是按字符显示,因此我们能直接读懂文件内容。二进制文件是按二进制的编码方式来存放文件的。例如,数5678的存储形式为:00010110001011108.1.1文件分类只占2个字节。二进制文件虽然也可在屏幕上显示,但其内容无法读懂。C系统在处理这些文件时,并不区分类型,都看成是字符流,统一按字节进行处理。输入输出字符流的开始和结束只由程序控制而不受物理符号(如回车符)的控制。因此也把这种文件称作“流式文件”。8.1.2文件名处理文件时,要指出文件名所在的具体路径,C语言中的文件名的一般构成如下:“盘符:\\路径\\文件名.扩展名”其中盘符表示文件所在的驱动器符号,例如C:、D:、G:等。如果省略盘符,表示文件在当前盘的相应路径中。例如:\\c8_example\\c\\ex1-1.c8.1.2文件名表示要处理的文件ex1—1.c在当前驱动器的c8_example文件夹下的C子文件夹中。路径是由文件夹序列组成,上下级文件夹之间由双斜杠“\\”间隔,这是因为第一个单斜杠在C语言中作为转义字符了。如果省略路径,表示文件在盘符所指的驱动器当前路径下。例如:G:ex1—2.c表示要处理的文件ex1—2.c在G:驱动器的当前路径下。8.1.3文件的打开与关闭1、文件指针不管什么类型的文件,在C语言中,都是用一个特殊“结构体”类型FILE来描述待处理的文件。FILE类型在“stdio.h”中进行了定义。在使用文件前,必须定义一个FLIE类型的文件指针,并将该指针和待处理的文件进行关联,之后对文件的所有操作,都通过该指针进行,因此在文件指针与文件关联后也可以将这个文件指针看成是待处理的文件。文件系统为每个正使用的文件在内存中开辟一个文件信息区,文件信息用系统定义的名为FILE的结构体描述,FILE定义在stdio.h中,内容如下:8.1.3文件的打开与关闭typedef

struct//此结构体内容作为了解{int_fd;//文件号

int_cleft;//缓冲区中剩下的字符数

int_mode;//文件操作方式

char*_next;//文件当前读写位置

char*_buff;//文件缓冲区位置,文件读写时要经缓冲区再对文件进行读写。}FILE;8.1.3文件的打开与关闭定义文件指针的一般形式:FLIE*指针变量名;例如:FLIE*fp;(FILE必须为大写,*不能少、文件指针只要符合变量名的命名规则就行)表示fp是指向FILE结构的指针变量,c以后就通过fp对文件进行各项操作。习惯上也笼统地把fp称为指向一个文件的指针。8.1.3文件的打开与关闭2、文件的打开要对文件进行操作必须先打开文件,然后才能进行读/写操作。文件的所有操作由系统提供的读写库函数来完成的。所谓打开文件,实际上是建立文件的各种有关信息,并使文件指针指向该文件,以便进行其他读写操作;而对文件的读/写操作,则因各种处理要求以及文件类型的不同,会有不同的处理方法。文件的打开一般用fopen函数来进行。fopen函数打开一个文件的一般形式为:文件指针名=fopen(文件名,读或写方式);8.1.3文件的打开与关闭其中:“文件指针名”是已被说明为FILE类型的指针变量;“文件名”是要被打开文件的文件名;“读或写方式”是指针对文件的类型和不同操作要求进行的相关读或写的形式。“文件名”常常可以是字符串常量或一维字符串数组名或二维字符数组的行名等形式。8.1.3文件的打开与关闭例:FILE*fp1; //定义文件指针fp1fp1=fopen("bb.txt","w"); //打开当前驱动器当前目录下bb.txt文件,方式为写文件例:FILE*fp2; //定义文件指针fp2 fp2=fopen("e:\\aa\\bb.txt","r");//打开e:\aa\bb.txt

文件,方式为读文件例:charb[20]=“e:\\aa\\bb.dat” //定义字符数组保 存文件名FILE*fp3;//定义文件指针fp3 fp3=fopen(b,“rb”);//打开e:\aa\bb.dat文件,方 式为读二进制文件8.1.3文件的打开与关闭例:charb[2][20]={"e:\\bb1.dat","e:\\bb2.dat"}; //定义字符数组保存文件名FILE*fp1,*fp2; //定义两个文件指针fp1和fp2fp1=fopen(b[0],“wb”); //打开e:\bb1.dat文件, 方式为写二进制文件fp2=fopen(b[1],“rb”); //打开e:\bb2.dat文件, 方式为读二进制文件8.1.3文件的打开与关闭8.1.3文件的打开与关闭对于文件使用方式有以下几点说明:(1)文件使用方式由r、w、a、b、+等字符组成,各字符的含义是:r(read):读、w(write):写、a(append):追加、b(binary):二进制文件、+:可读和可写。(2)用“r”打开一个文件时,该文件必须已经存在。(3)用“w”打开的文件只能向该文件写入数据。若打开的文件不存在,则以指定的文件名建立该文件,若打开的文件已经存在,则将该文件删去,重建一个同名新文件,即原文件内容将丢失。8.1.3文件的打开与关闭(4)若要向一个已存在的文件追加新的信息,只能用“a”方式打开文件。如果文件不存在则新建文件。(5)在打开一个文件时,如果因某些原因致使打开操作出错,fopen将返回一个空指针值NULL。因此常用以下类似的程序段打开文件。

if((fp=fopen("c:\\student.dat","rb"))==NULL){printf("\nerroronopenc:\\student.datfile!");getch();exit(0);}8.1.3文件的打开与关闭这段代码的含义是,如果fopen函数返回的指针为空,表示不能打开C盘根目录下的student.dat文件,则给出提示信息“erroronopenc:\student.datfile!”,程序遇到getch()等待用户从键盘输入一个字符,实际上是让用户看清出错提示,敲任意键后执行exit(0)退出程序。exit()函数所在的头文件是“stdlib.h”。文件打开后就能用相应的读写函数进行读写操作了。8.1.3文件的打开与关闭3、关闭文件关闭文件的目的是断开文件指针变量与文件之间的联系,也就是禁止再通过文件指针变量对该文件进行相关的操作了。另外及时把文件缓冲区的内容与文件的联系关闭,防止缓冲区中的数据丢失。文件一旦使用完毕,应用关闭文件函数把文件关闭,以避免文件的数据丢失等错误。fclose函数调用的一般形式是:fclose(文件指针);如:fclose(fp);8.1.3文件的打开与关闭正常完成关闭文件操作时,fclose函数返回值为0。如返回非零值则表示有错误发生。关闭的过程是先将缓冲区中尚未存盘的数据写盘,然后撤销存放该文件信息的结构体,最后令指向该文件的指针为空值(NULL)。此后,如果再想使用刚才的文件,则必须重新打开。应该养成在文件访问完之后及时关闭的习惯,一方面是避免数据丢失;另一方面是及时释放内存,减少系统资源的占用。8.1.3文件的打开与关闭例:#include<stdio.h>#include<stdlib.h>main(){FILE*fout; //定义文件指针变量foutcharch; fout=fopen(“abc.txt”,“w”);//建立当前盘当前目录下 文件abc.txt,读写方式为写 文件8.

温馨提示

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

评论

0/150

提交评论