文件安徽电子信息职业技术学院_第1页
文件安徽电子信息职业技术学院_第2页
文件安徽电子信息职业技术学院_第3页
文件安徽电子信息职业技术学院_第4页
文件安徽电子信息职业技术学院_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

第9章文件文件是存储在外部介质上数据的集合,是程序设计中一个重要的概念。操作系统以文件为单位对数据进展管理。C言语文件的输入和输出由库函数来完成。1、流和文件C言语I/O系统在编程者和运用设备之间提供了一层笼统的东西。这个笼统的东西就叫做“流〞。详细的实践设备叫做“文件〞C言语把文件看作是一个字符的序列,即由一个个字符的数据流组成,一个文件是一个字符流。在C言语中对文件的存取是以字符为单位的,这种文件称为流式文件。C言语提供了两种类型的流:文本流和二进制流。一个文本流是一行行的字符,换行符表示这一行的终了。在一个文件流中某些字符的变换由环境工具的需求来决议。一个二进制流是由与外围设备中的内容一一对应的系列字节组成的。运用中没有字符翻译过程,而且所读写的字节数目也与外设中的数目一样。用一个翻开操作使流和一个特定的文件建立联络。一旦一个文件被翻开,程序就可以与该文件交换信息。封锁操作使文件脱离一个特定的流。对于一个翻开的输出流,封锁时那么将与这个流有关的缓冲区的内容写入到外围设备上。每一个与文件相结合的流都有一个FILE型文件控制构造,这个构造在头文件stdio.h中有定义。2、规范设备文件在一个程序开场执行时,三个预定义的文本流stdin,stdout和stderr就被翻开。它们是与系统相衔接的规范输入输出设备。其中:stdin指规范输入设备,即键盘;stdout指规范输出设备,即终端显示器;stderr是规范出错输出设备,普通是终端显示器。9.1文件类型指针文件构造指针是一个指向文件有关信息的指针。这些信息定义了文件的文件名、形状和当前位置。在概念上文件构造指针标志着一个指定的磁盘文件。文件构造指针是一个FILE型指针变量,在头文件stdio.h中已定义如下:typedefstruct{shortlevel;unsignedflags;charfd;unsignedcharhold;shortbsize;unsignedchar*buffer;unsignedchar*curp;unsignedistemp;shorttoken;}FILE;例如定义一个文件型指针变量:FILE*fp;阐明:fp就是一个指向FILE类型构造的指针变量,经过该文件指针变量就可以找到它相关联的文件,从而对文件进展读写操作。9.2文件的翻开与封锁C言语规定对文件进展读写操作之前应该首先翻开该文件,在操作终了之后应封锁该文件。1.文件的翻开fopen()函数fopen()函数翻开一个流并把一个文件与这个流衔接,fopen()函数的调用方式为:FILE*fp;fp=fopen(filename,mode);其中:filename必需是一个字符串组成的有效文件名;mode是阐明文件翻开方式的字符串,在TurboC中,有效的mode值如下表所示;fopen()函数假设胜利地翻开所指定的文件,那么前往指向新翻开文件的指针,且假想的文件位置指针指向文件首部;假设未能翻开文件,那么前往一个空指针。

文件操作方式

含义

指定文件不存在时

指定文件存在时“r”只读打开一个文本文件只读出错正常打开“w”只写生成一个文本文件只写建立新文件原文件内容丢失“a”追加对一个文本文件添加建立新文件原文件尾部追加数据“rb”打开一个二进制文件只读出错正常打开“wb”生成一个二进制文件只写建立新文件原文件内容丢失“ab”对一个二进制文件添加建立新文件原文件尾部追加数据“r+”打开一个文本文件读/写出错正常打开“w+”生成一个文本文件读/写建立新文件原文件内容丢失“a+”打开或生成一个文本文件读/写建立新文件原文件尾部追加数据“rb+”打开一个二进制文件读/写出错正常打开“wb+”生成一个二进制文件读/写建立新文件原文件内容丢失ab+”打开或生成一个二进制文件读/写建立新文件原文件尾部追加数据【例1】翻开一个名为test.txt文件并预备写操作。fp=fopen(“test.txt〞,“w〞);if((fp=fopen(“test〞,“w〞))==NULL){puts(“不能翻开此文件\n〞); exit(1);}留意:NULL是stdio.h中定义的一个宏阐明:在翻开一个文件作为读操作时,该文件必需存在;假设文件不存在,那么前往一个出错信息。以读操作“r〞或“rb〞方式翻开一个文件,只能对该文件进展读出而不能对该文件进展写入。用“w〞或“wb〞翻开一个文件预备写操作时,假设该文件存在的话,那么文件中原有的内容将被全部抹掉,并开场存放新内容;假设文件不存在,那么建立这个文件。以写操作“w〞或“wb〞方式翻开一个文件,只能对该文件进展写入而不能对该文件进展读出。在“a〞、“ab〞、“a+〞、“ab+〞方式翻开一个文件,要在文件的尾部再加写些内容,那么在翻开文件时,假设该文件存在,那么文件中原有的内容不会被抹掉,文件位置指针指向文件末尾;假设该文件不存在,就建立这个文件。以“r+〞或“rb+〞方式翻开一个文件进展读写操作时,该文件必需存在,假设文件不存在,那么前往一个出错信息。以“w+〞或“wb+〞方式翻开一个文件进展读写操作时,假设该文件存在,那么文件中原有的内容将被抹掉;假设该文件不存在,就建立这个文件。2.fclose()函数fclose()函数用来封锁一个已由fopen()函数翻开的流,fclose()函数的调用方式为:fclose(fp);

其中:fp是一个调用fopen()时前往的文件指针。假设封锁文件胜利,那么fclose()函数前往值为0;假设fclose()函数的前往值不为0,那么阐明出错。。9.3文件的读写操作1.fputc()、fgetc()和feof()函数fputc()函数的调用方式为:fputc(ch,fp);功能:用来向一个已由fopen()函数翻开的写操作流中写一个字符。假设fputc()操作胜利,那么前往值是输出的字符;假设操作失败,那么前往EOF〔文件终了〕。fgetc()函数的调用方式为:fgetc(fp);功能:fgetc()函数用来从一个已由fopen()函数翻开的读操作流中读取一个字符。fgetc()前往文件指针所指文件中当前位置上字符。当读到文件尾时,fgetc()前往一个EOF文件终了标志。feof()函数feof()函数的调用方式为:feof(fp);feof()函数将前往一个整型值,在到达文件终了点时其值为1,未到达文件终了点时其值为0。2.getw()函数和putw()函数getw()函数和putw()函数用于从磁盘文件中读或写一个整型数据〔一个字〕。3.fgets()函数和fputs()函数fgets()函数和fputs()函数用来读写字符串的。调用方式为:fgets(str,length,fp);和fputs(str,fp);4.fread()函数和fwrite()函数调用方式为:fread(buffer,num_bytes,count,fp);fwrite(buffer,num_bytes,count,fp);其中:buffer是一个指针;读写的字节数用num_bytes来表示;参数count指示共有多少个字段要被读写;fp是一个有效的文件指针。5.fprintf()函数和fscanf()函数调用方式为:fprintf(fp,“控制字符串〞,参数表);fscanf(fp,“控制字符串〞,参数表);其中:fp是一个有效的文件指针,控制字符串和参数表同printf()和scanf()函数。fprintf()函数操作胜利,前往实践被写的字符个数;不胜利前往一个负数。fscanf()函数操作胜利,前往实践被赋值的参数个数;假设前往EOF,那么表示试图去读取超越文件末尾的部分。9.4文件定位与出错检测1、文件定位fseek()函数调用方式为:fseek(fp,num_bytes,origin);功能:fseek()函数可以完成随机读写操作,可以随机设置文件位置指针。fseek()函数操作胜利,前往0,前往非零值表示失败。其中,origin是下表中所示的几个宏名之一:宏名字数值表示origin(起点)SEEK_SET0文件开始为起点SEEK_CUR1文件当前位置为起点SEEK_END2文件末尾为起点2、出错检测ferror()函数ferror()函数用来确定文件操作中能否出错。调用方式为:ferror(fp);其中:fp是一个调用fopen()时前往的文件指针。假设在文件操作中发生了错误,那么ferror()函数前往一个非零值,即“真〞;否那么前往值为0,即“假〞。9.5其他文件函数1、rewind()函数rewind()函数用来将文件位置指针重新设置到该文件首。其调用方式是:rewine(fp);

2、ftell()函数ftell()函数的作用是得到流式文件中位置指针的当前位置,用相对于文件开头的位移量来表示。3、

clearerr()函数clearer()函数的作用是使文件错误标志和文件终了标志置为0。其调用方式是:clearerr(fp);

4、remove()函数remove()函数删除所指定的文件,其调用方式为:remove(filename);字符串filename是指定要删除的文件名。该函数正确执行终了前往0,否那么前往非零值。其调用方式是:

温馨提示

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

评论

0/150

提交评论