欢迎来到天天文库
浏览记录
ID:8959092
大小:112.50 KB
页数:31页
时间:2018-04-13
《c语言文件的输入输出》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、C语言文件的输入与输出一.文件指针 每个被使用的文件都在内存中开辟一个区,用来存放文件的有关信息(如文件的名字、文什状态及文件当前位置等)。这些信息是保存在一个结构体变量中的。该结构体类型是由系统定义的,取名为FILE。在sudio.h文件中有以下的文件类型声明:typedefstruct{shortlevel; /*缓冲区“满”或“空”的程度*/ unsignedflags;/*文件状态标志*/ charfd; /*文件描述符*/ unsignedcharhold; /*如无缓冲区不读取字符*/ shortbsize;
2、 /*缓冲区的大小*/ unsignedchar*buffer;/*数据缓冲区的位置*/ unsignedchar*curp; /*指针,当前的指向*/ unsignedistemp; /*临时文件,指示器*/ shorttoken; /*用于有效性检查*/}FILE; 在缓冲文件系统中,每个被使用的文件都要在内存中开辟一FILE类型的区,存放文件的有关信息。31 FILE类型的数组:FILE f[5];定义了一个结构体数组f,它有5个元素,可以用来存放5个文件的信息。有了文件指针类型,就可以用它来定义文件指
3、针变量,用文件指针变量来访问文件,其形式为:FILE*指针变量名。例如:FILE*fp;其中fp是指向要访问文件的指针变量。例如,通过文件指针访问text.exe文件,有如下的访问:FILE*fp;fp=fopen(“text.exe”,“rb”);ch=getc(fp);第一行语句只定义了一个没有指向的文件指针fp,第二行是打开文件text.exe,并同时确定对访问文件的操作方式(此处对访问的文件只进行读操作),这时给文件结构中的成员信息赋值,并使fp指向text.exe文件,第三行是利用文件指针对文件进行操作,操作方式应当与打开文件时确定的方式一致(只读)。由此可以看出,操作文件过程中不
4、出现对文件结构成员的访问语句。 如果有n个文件,一般应设n个指针变量,使它们分别指向n个文件,确定打开方式,利用有关函数对文件指针操作即可。例如:下面语句定义了三个文件指针,在程序中就可以处理三个不同的文件。FILE*fa,*fb,*fc;31二.文件的打开与关闭2.1文件的打开(fopen函数)打开文件的首要工作就是要改变文件的标志,使其由闭到开,并且把下面信息告诉编译系统:①需要打开的文件名,也就是准备访问的文件的名字; ②使用文件的方式(“读”还是“写”等); ③让哪一个指针变量指向被打开的文件。打开函数的原型是定义在stdio.h头文件中的fopen函数,其格式为:fopen
5、(“文件名”,“使用文件方式”); 即:FILE=fopen(“文件名”,“使用文件方式”);例如:fp=fopen(“file”,“r”);它表示,要打开的文件名为file,操作方式为读入,fopen函数返回指向file文件的指针并赋值给指针变量fp,这样fp和文件file就建立了联系。文件名字符串允许带有路径,使用路径时,路径分隔符是“”而不是“\”。例如:FILE*fp,*fq;fp=fopen(“student”,“w”);fq=fopen(“D:liulistudent34”,“r”);31以上语句表明,在当前磁盘,当前目录下以只写方式打开一个新文件,并将该文件的内存存储
6、的首地址赋予文件指针fp,再以只读方式打开D盘liuli子目录下名字为student34的已经存盘的旧文件,并将该文件的内存存储的首地址赋予文件指针fq。注意:如果fopen函数调用失败,即文件打开失败,fopen函数将返回空指针NULL,NULL在头文件中被定义为0.文件使用方式及含义文件操作方式含义打开文件方式“r”打开一个文本文件只读“w”打开一个文本文件只写“a”打开一个文本文件,向文本文件尾增加数据追加“rb”打开一个二进制文件只读“wb”打开一个二进制文件只写“ab”打开一个二进制文件,向二进制文件尾增加数据追加“r+”打开一个文本文件读/写“w+”建立一个新的文本文件读/写“a
7、+”打开或生成一个文本文件读/写“rb++”打开一个二进制文件读/写31“wb++”建立一个新的二进制文件读/写“ab++”打开或生成一个二进制文件读/写说明: (1)用“r”方式打开文件的目的是为了从文件中读取数据,不能向文件写入数据,而且该文件应该已经存在,不能用“r”方式打开一个并不存在的文件;否则出错。 (2)用“w”方式打开的文件只能用于向该文件写数据(即输出文件),而不能用来向计算机输入。
此文档下载收益归作者所有