- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言文件教案研讨
说明: ? 起始位置分别有0(文件开始)、1(文件当前位置)和2(文件末尾)三种情况。 ? 位移量可正可负。位移量为正数时,位置指针向后移动;位移量为负数时,位置指针向前移动。 “起始位置”是初始位置的“定位代码”,表示从文件的哪一点开始测量“位移量”,按表10-2所示的规定方式取值,既可以是标准C规定的常量名,也可以取对应的数字。 注意: 位移量一般被要求是长整(long)型数据,这样当文件的长度大于64KB时不致出问题。 返回到本章目录 二、文件的检测函数 【思考题10-7】 当要打开的文件不存在时,显示错误提示信息,若存在时,输出文件中的所有信息,程序应该如果编写? (一)程序分析 首先使用fopen()函数以只读rb的方式打开该文件,若文件不存在,则给出提示信息(在此处使用ferror函数和clearerr函数)。若存在,则将该文件的信息全部输出,直到文件结束为止。 返回到本章目录 (二)编写程序代码 #include stdio.h main() { char c,filename[30]; FILE *fp; clrscr(); /*清屏*/ printf(\nPlease input the open filename:); scanf(%s,filename); /*从键盘读入文件名*/ fp=fopen(filename,r); if(ferror(fp)) /*若文件指针出错,即没打开该文件*/ 返回到本章目录 { printf(Error reading from %s file\n,filename); clearerr(fp); /*将文件出错指针置为0*/ exit(0); } else { while ((c=fgetc(fp))!=EOF) /*当文件指针没到文件尾部时*/ putchar(c); fclose(fp); /*关闭该文件*/ } } 返回到本章目录 (三)调试运行程序 当输入的文件名存在时,程序会输出该文件中的所有字符,运行结果如下: 当输入的文件名不存在时,程序会给出错误提示信息,运行结果如下: 返回到本章目录 C标准中有一些检测输入/输出函数调用中的错误的函数,主要有文件结束检测函数feof()、文件出错检测函数ferror()及文件出错标志和文件结束标志置0函数clearerr()三个。 返回到本章目录 4.文件结束检测函数feof() (1)函数调用格式如下: (2)功能。feof()函数用来判断“文件指针”指向的文件是否处于文件结束位置,如文件结束,则返回值为1,否则为0。 int feof(文件指针); 返回到本章目录 5.文件出错检测函数ferror() 大多数输入/输出函数不具有明确的出错信息返回,在调用各种输入/输出函数(如fputc、fgetc、fread、fwrite等)时,如果出现了错误,除了函数返回值有所反映外,还可以用ferror函数检测。 (1)函数调用格式如下: (2)功能。ferror()函数用来检查文件fp在用各种输入/输出函数进行读/写时是否出错,若出错,返回值为1,否则返回0。 int ferror(文件指针); 返回到本章目录 6.文件出错标志和文件结束标志置0函数clearerr() (1)函数调用格式如下: (2)功能。clearer()函数用来使文件的错误标志和文件结束标志置为0。假设在调用一个输入/输出函数时出现错误,ferror函数值为一个非零值。在调用clearerr(fp)后,ferror(fp)的值变成0。 int clearer(文件指针); 返回到本章目录 7.常用文件操作函数表 文件读/写 fgetc(),getc() 从指定文件读取一个字符 fputc(),putc() 把字符写入指定文件 fgets() 从指定文件读取一个字符串 fputs() 把字符串写入指定文件 getw() 从指定文件读取一个字(int型) putw() 把字(int型)写入指定文件 fread() 从指定文件读取数据项 fwrite() 把数据项写入指定文件 fscanf() 从指定文件中按指定格式输入数据 fprintf() 按指定格式将数据输出到指定文件中 文件定位 rewind() 文件指针重返到文件头部 ftell() 返回文件当前指针位置 fseek() 移动文件指针到指定位置 文件检测 feof() 若到文件末尾,函数值为真(非0
文档评论(0)