C语言第十二章 文件.pptVIP

  • 1
  • 0
  • 约1.56万字
  • 约 51页
  • 2020-02-07 发布于辽宁
  • 举报
if((fp2=fopen(c:\\file\\t.txt,w))==NULL) { printf(文件未成功打开!\n); exit(0); } for(; !feof(fp1); ) putchar(fgetc(fp1)); //s.txt内容显示在屏幕上 putchar(\n); rewind(fp1); //文件指针返回文件的开头 ch=fgetc(fp1); for(; ch!=EOF; ) { fputc(ch,fp2); //写到t.txt文件上 ch=fgetc(fp1); } fclose(fp1); fclose(fp2); } 运行结果,如图所示。 打开c:\file\t.txt文件,如图所示。 2、fseek函数 fseek函数的作用是使位置指针按需要移动到任意位置,能够实现随机读写。fseek函数一般用于二进制文件,因为文本文件要发生字符转换,计算位置时往往会发生混乱。该函数在“stdio.h”中定义。 该函数调用的一般形式为: fseek(fp,位移量,起始点); 其中:fp是文件指针;位移量是以“起始点”为基点,向前或向后移动的字节数;起始点“0”代表“文件开始”、“1”代表“当前位置”、“2”代表“文件末尾”。正常返回当前指针位置;异常返回“-1”表示定位出错。 例如: fseek(fp,100,0); 将位置指针移到离文件头100个字节处 fseek(fp,100,1); 将位置指针移到离当前位置100个字节处 fseek(fp,-100,2); 将位置指针从文件末尾处向后退100个字节 3、ftell函数 ftell函数的作用是得到文件指针的当前位置。该函数在“stdio.h”中定义。 该函数调用的一般形式为: ftell(fp); 其中:fp是文件指针。正常返回位移量;异常返回“-1”表示出错。 例如: ftell(fp); //存放当前位置,用相对于文件开头的位移量来表示 【例12-10】fseek函数和ftell函数综合应用。 #include stdio.h #include stdlib.h void main( ) { FILE *fp; if((fp=fopen(c:\\file\\number.txt,rb))==NULL) //在C盘file文件夹已存在number.txt { printf(文件未成功打开!\n); exit(0); } fseek(fp,1,0); printf(%c\n,fgetc(fp)); fseek(fp,1,1); printf(%c\n,fgetc(fp)); fseek(fp,0,2); printf(该文件的长度为%d个字节\n,ftell(fp)); fclose(fp); } 打开c:\file\number.txt文件,如图所示。 六、出错的检测 1、ferror函数 在调用各种输入输出函数(如:fputc、fgetc、fread、fwrite等)时,如果出现错误,除了函数返回值有所反映外,还可以用ferror函数检查。该函数在“stdio.h”中定义。 该函数调用的一般形式为: ferror(fp); 其中:fp是文件指针。若返回值为0,表示无错误;若返回值为1,表示出错。 另外,在执行fopen函数时,ferror函数的初始值自动置为0。对于同一文件,每次调用输入输出函数,均重置错误标志的值。因此,应当在调用一个输入输出函数后,立即检查ferror函数的值,否则出错信息会丢失。 2、clearerr函数 clearerr函数作用是使文件错误标志和文件结束标志置为0。

文档评论(0)

1亿VIP精品文档

相关文档