教学内容:131文件及其分类132文件指针133文件的打内容摘要:

main() { FILE *fp。 char ch。 *filename=NULL。 printf(please imput filename: )。 gets(filename)。 fp=fopen(filename,r)。 if (fp==NULL) printf(error\n)。 else while ((ch=fgetc(fp))!=EOF) putchar(ch)。 fclose(fp)。 } (5) 关于符号常量 EOF 在对 ASCII码文件执行读入操作时 , 如果遇到文件尾 ,则读操作函数返回一个文件结束标志 EOF( 其值在头文件 1)。 在对二进制文件执行读入操作时 , 必须使用库函数feof()来判断是否遇到文件尾。 (6) 库函数 feof(): ( 判断文件尾函数 ) 用法: int feof(文件指针 )。 功能: 在执行读文件操作时,如果遇到文件尾,则函数返回逻辑真( 1);否则,则返回逻辑假( 0)。 feof()函数同时适用于 ASCII码文件和二进制文件。 例如, ! feof(input) 表示源文件(用于输入)未结束,循环继续。 (1) fputc()函数将一个字符写到文件中 用法: int fputc(字符数据 , 文件指针 )。 其中 “ 字符数据 ” , 既可以是字符常量 , 也可以是字符变量。 功能: 将字符数据输出到 “ 文件指针 ” 所指向的文件中去 , 同时将读写位置指针向前移动 1个字节 ( 即指向下一个写入位置 )。 如果输出成功 , 则函数返回值就是输出的字符数据;否则 , 返回一个符号常量 EOF( 其值在头文件 中 , 被定义为 1)。 关于 fputc函数使用的几点说明: ( 1) 被写入的文件可以用写 、 读写 , 追加方式打开 ,用写或读写方式打开一个已存在的文件时 , 在向文件中写入字符时将清除原有文件内容 , 写入字符是从文件首开始。 如需保留原有文件内容 , 希望写入的字符以文件末开始存放 , 必须以追加方式打开文件。 ( 2) 打开文件时若被写入的文件若不存在 , 则自动创建该文件。 ( 3) 每写入一个字符 , 文件内部位置指针向后移动一个字节。 ( 4) fputc函数有一个返回值 , 如写入成功则返回写入的字符 , 否则返回一个 EOF, EOF是文件 的符号常量 , 值为 1, 可用此来判断写入是否成功。 例 从键盘输入到文件(文本文件) include main() { FILE *fp。 char ch, *filename=NULL。 printf(please input filename: )。 gets(filename)。 fp=fopen(filename,w)。 if (fp==NULL) printf(error\n)。 else while ((ch=getchar())!=39。 !39。 ) fputc(ch,fp)。 fclose(fp)。 } 2. 字符串读写函数 fgets和 fputs (1) 库函数 fgets() 从文件中读一个字符串 用法: char *fgets(指针 , 串长度 +1, 文件指针 )。 功能: 从指定文件中读入一个规定长度字符串 , 存入“ 字符数组/指针 ” 中 , 并在尾端自动加一个结束标志‘ \0’;同时将读写位置指针向前移动字符串长度个字节。 关于 fgets函数的两点说明: ⓐ 在读出 n1个字符之前 , 如遇到了换行符或 EOF,则读出结束。 ⓑ fgets函数也有返回值 , 其返回值是字符数组的首地址 (指针值 )。 例 20个字符的字符串。 include main() { FILE *fp。 char str[21]。 if((fp=fopen(,rt))==NULL) { printf(Cannot open file strike any key exit!)。 exit(0)。 } fgets(str,20,fp)。 printf(%s,str)。 /*打印输出数组 str中的值 */ fclose(fp)。 /*关闭文件 myq1*/ } (2)库函数 fputs() 向指定文件输出一个字符串 用法: int fputs(字符串 , 文件指针 )。 其中 “ 字符串 ” 可以是 : 字符串常量 , 或字符数组名 , 或字符指针变量名。 功能: 向指定文件输出一个字符串 , 同时将读写位置指针向前移动 strlength( 字符串长度 ) 个字节。 函数返回值 : 如果输出成功函数返回值为0;否则 , 为非0值。 例 向文件 myq1中追加一个字符串。 include main() { FILE *fp。 char ch,str[20]。 if((fp=fopen(myq1,a+))==NULL) { printf(Cannot open file strike any key exit!)。 exit(0)。 } printf(input a string:\n)。 scanf(%s,str)。 fputs(str,fp)。 fclose(fp)。 } 3. 数据块读写函数 fread()和 fwrite()函数一般用于二进制文件的处理。 ( 1) 读数据块函数 fread 读数据块函数调用的一般形式为: fread(buffer,size,count,fp)。 其中 fp 是文件指针; buffer是一个指针 , 用来存放输入数据块的首地址; size 表示一个数据块的字节数;count表示要写的数据块块数。 函数功能 :从 fp所指向文件的当前位置开始 , 一次读入 size个字节 , 重复 count次 , 并将读入的数据存放到从 buffer开始的内存中;同时 , 将读写位置指针向前移动size * count个字节。 ( 2) 写数据块函数 fwrite。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。