C语言程序设计__第8章 文件课件.ppt

  1. 1、本文档共56页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
8.4 文件的定位 8.4.2 文件的定位函数   这两个函数的调用形式为: int rewind(FILE *fp); int fseek(FILE *fp,long offset,int origin); 其中:“文件指针fp”指向打开欲移动的文件。 “位移量offset”表示移动的字节数且为long型数据,以便在被打开的文件的长度大于64KB 时不会出错(即文件内部的位置指针的移动范围>64KB),当用常量表示位移量时,要求加后缀“L”。可以为正值或负值。表示从起始点向前或向后的移动指针。 “起始点origin”表示从何处开始计算位移量,规定的起始点有三种:文件首、当前位置和文件尾。其表示方法如表8.3所示。函数的返回值若操作成功为0,操作失败为非零。 8.4 文件的定位 8.4.2 文件的定位函数   表8.3 origin的表示方法 8.4 文件的定位 8.4.2 文件的定位函数   例如: fseek(fp,100L,0);    /* 将文件内部的位置指针从文件头向前移动100个字节*/ fseek(fp,-10L,1);    /* 将文件内部的位置指针从当前位置向后移动10个字节*/ 需要说明的是fseek()函数一般用于二进制文件。在文本文件中由于要进行转换而产生误差,故往往容易出现因计算的误差导致位置指针指向错误的问题。当文件内部的位置指针按要求进行了移动之后,对文件的随机读写即可用前面介绍的任一种读写函数进行读写。常用fread()和fwrite() 函数与fseek()函数配合使用来对一个数据块进行读写操作。 8.4 文件的定位 8.4.2 文件的定位函数   8.5 文件的检测 8.5.1 引言   除了上述的文件操作函数外,C语言提供了一组专门的文件检测函数,以方便程序设计者在文件操作过程中对所操作文件的工作状态进行监测和控制。 常用的有以下几个: 1) 文件结束检测函数feof( ) 2) 读写文件出错检测函数ferror( ) 3) 文件出错标志和文件结束标志置0函数clearerr( )         返回目录 8.5 文件的检测 8.5.2 文件的检测函数   1.文件结束检测函数feof( ) 调用格式: feof(文件指针); 函数功能:判断文件是否处于文件结束位置,如文件结束,则返回值为1,否则为0。 2.读写文件出错检测函数ferror( ) 调用格式:ferror(文件指针); 函数功能:检查文件在用各种输入输出函数进行读写时是否出错。如ferror()返回值为0表示未出错,否则表示有错。 8.5 文件的检测 8.5.2 文件的检测函数   3.文件出错标志和文件结束标志置0函数clearerr() 调用格式:clearerr(文件指针); 函数功能:用于清除出错标志和文件结束标志,使它们为0值。 在C程序中,只要文件操作出错,就会出现错误标志。该标志将一直保留,直到对同一文件调用clearerr()函数或rewind()或其它任一个输入输出函数。例如: err= ferror(fp); if (err!=0) { printf(“error\n”); clearer(fp);      /* 使ferror(fp)=0 */ } 8.5 文件的检测 8.5.2 文件的检测函数   4.检测文件内部的位置指针的当前位置函数ftell( ) 调用格式:ftell(FILE *fp); 函数功能:ftell函数返回文件指针的当前位置。若函数调用出错(如文件不存在),则函数返回值为-1L。例如: err=ftell(fp); if (err==-1L) printf(“error\n”); 8.6 习题八 ● 单项选择题   1.以下可作为函数fopen( )中第1个参数的正确格式是(  ) A)c:\myfile\1.text  B)c:\myfile\1.txt C)“c:\myfile\1”   D)c:\\myfile\\1.txt 2.为写而打开文本my.dat的正确写法是(  )。 A)fopen(my.dat,rb) B)fp=fopen(my.dat,r) C)fopen(my.dat,wb) D)fp=fopen(my.dat,w) 3.若执行fopen函数时发生错误,则函数的返回值是(  )。 A)地址值  B)0 C)1  D)NULL         返回目录 D D D 8.6 习题八 ● 单项选择题   4.已知函数的调用形式为fread(buffer,size,count,f

文档评论(0)

cumhuatgw + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档