第11章文件浅析.ppt

第11章 文 件 本章要点: 文件的概念 文件指针 文件的打开和关闭 文件的读写操作 常用下面的方法打开一个文件: if fp fopen file1.txt,r NULL printf can not open this file\n ; exit 0 ; 上面程序如果返回的指针为空,表示不能打开file1.txt文件,则给出提示信息can not open this file。 exit 函数功能是关闭已打开的所有文件,结束程序运行,返回操作系统并将“程序状态值”返回给操作系统。 11.6.1 ferror 函数 在调用输入输出库函数时出错,除了函数返回值有所反映外,也可利用ferror 函数来检测。 调用格式: ferror 文件指针 ; 功能: (1)如果函数返回值为0,表示未出错;如果返回一个非0值,表示出错。 (2)对同一文件,每次调用输入输出函数均产生一个新的ferror 函数值,因此在调用了输入输出函数后应立即检测,否则出错信息会丢失。 (3)在执行fopen 函数时,系统将ferror 的值自动置为0。 11.6 出错检测 调用格式: clearerr 文件指针 ; 功能:将文件错误标志(即ferror 函数的值)和文件结束标志(即feof 函数的值)置为0。对同一文件,只要出错就一直保留,直至遇到clearerr 函数或rewind 函数或其他任何一个输入输出库函数。 11.6.2 clearerr 函数  上机实验 1.掌握文件的打开和关闭; 2.掌握文件的读写操作。 一、实验目的 1.验证性实验 1)下面的程序执行后,文件data.txt中的内容是____。 #include #include string.h func char *name,char *st FILE *f;int i; f fopen name,w ; for i 0;i strlen st ;i++ fputc st[i], f ; fclose f ; main func data.txt,new world ; func data.txt,china ; 二、实验内容 2)调试并运行下列程序。 #include main FILE *fp;int i, a[4] 0,2,4,6 ,b; fp fopen data.txt,wb+ ; for i 0;i 4;i++ fwrite a[i],sizeof int ,1,fp ; fclose fp ; fp fopen data.txt,rb ; fseek fp,-2L*sizeof int ,SEEK_END ; fread b,sizeof int ,1,fp ; fclose fp ; printf %d\n,b ; 3)以下程序的输出结果是____。 #include main char a[] abcdefghi,b[] 1座机电话号码; char buf[80]; FILE *fp; if fp fopen data.txt,w+ NULL return; fputs a,fp ; fputc \n,fp ; rewind fp ; while fgets buf,80,fp ! NULL printf %s,buf ; printf \n ; fclose fp ; 4)以下程序企图把从终端输入的字符输出到名为data.txt的文件中,直到从终端读入字符!号时结束输入和输出操作,但程序有错。请改正程序中的错误。 #include void main FILE *fout;char ch; fout fopen data.txt, w ; ch fgetc stdin ; while ch! ! fputc ch,fout ; ch fgetc stdin ; fclose fout ; 2.设计性实验 1)输入一个文件名,然后输入一串字符(用#结束输入)存放到此文件中,形成文本文件,并将字符的个数写到文件尾部,将程序补充完整。 #include main FILE *fp; char ch,fname[32];int count 0; printf input the filename:\n ; scanf %s,fname ; if fp fopen __①__, w+ NULL printf cant open file:%s\n,fname ; exit 0 ; printf enter data:\n ; while ch getchar ! # fputc __②__,fp ; __③__ ; fprintf fp, \n%d\n

文档评论(0)

1亿VIP精品文档

相关文档