计算机文件的程序设计6—文件数据的增删改.doc

计算机文件的程序设计6—文件数据的增删改.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机文件的程序设计6—文件数据的增删改

计算机文件的程序设计5—随机读写数据文件 目的:复习文件的定位;了解ftell函数、ferror函数、clearerr函数;文件数据的增、删、改;菜单的建立。 教学过程: 复习文件的基本操作。 使用: 先定义文件指针,一个文件至少对应一个指针。 打开fopen 对文件操作 关闭fclose 文件的打开与关闭。 FILE *fp;//声明 if((fp=fopen(filename,wb))==NULL)//打开二进制文件,写,如果不存在就新建 { printf(cant open the file\n);//打不开终止 exit(0); } fclose(fp);//关闭文件 文件使用方式 含义 如果指定文件不存在 “r”(只读) 打开一个已经存在的文本文件 出错 “w”(只写) 打开一个已经存在的文本文件 建立新文件 “a”(追加) 向文本文件尾添加数据 出错 “rb”(只读) 输入,打开一个二进制文件 出错 “wb”(只写) 输出,打开一个二进制文件 建立新文件 “ab”(追加) 向二进制文件尾添加数据 出错 “r+”(读写) 读写,打开一个文本文件 出错 “wr+”(读写) 读写,建立一个新的文本文件 建立新文件 “a+”(读写) 读写,打开一个文本文件 出错 “rb+”(读写) 读写,打开一个二进制文件 出错 “wb+”(读写) 读写,建立一个新的二制文件 建立新文件 “ab+”(读写) 读写,建立一个新的二制文件 出错 二、复习文件中数据的读写。 单个字符的读写 fputc(ch,fp);//ch放入fp指的文件中 ch=fgetc(fp);//从fp指的文件中取出一个字符放入ch 字符串的读写 fgets(str,n,fp);// 从指定文件读入一个字符串 fputs(China,fp);//把字符串“China”输出到fp指向的文件。 结构数据的读写//用于二进制文件 fread(buffer,size,count,fp); fwrite(buffer,size,count,fp); buffer:是一个指针。对fread来说,它是读入数据的存放地址。对fwrite来说,是要输出数据的地址(以上指的是起始地址)。 size:要读写的字节数。 count:要进行读写多少个size字节的数据项。 fp:文件型指针。 三、复习文件的定位 文件中有一个位置指针,指向当前读写的位置。如果顺序读写一个文件,每次读写一个字符,则读写完一个字符后,该位置指针自动移动指向下一个字符位置。如果想改变这样的规律,强制使位置指针指向其他指定的位置,可以用有关函数。 1.rewind函数的作用是使位置指针重新返回文件的开头。此函数没有返回值,格式:rewind(文件指针); 2.fseek函数和随机读写 fseek (文件类型指针,位移量,起始点); “起始点”用0、1或2代替,0代表“文件开始”,1为“当前位置”,2为“文件末尾”。ANSI C标准指定的名字如表13.2所示。 “位移量”指以“起始点”为基点,向前移动的字节数。ANSI C和大多数C版本要求位移量是long型数据。这样当文件的长度大于64K时不致出问题。ANSI C标准规定在数字的末尾加一个字母L,就表示是long型。 例: fseek(fp,100L,0);//将位置指针移到离文件头100个字节处。 fseek(fp,50L,1); //将位置指针移到离当前位置50个字节处。 fseek(fp,-10L,2); //将位置指针从文件末尾处向后退10个字节。 3.ftell函数(机动) ftell函数的作用是得到流式文件中的当前位置,用相对于文件开头的位移量来表示。 如果ftell函数返回值为-1L,表示出错。例: i=ftell(fp); if(i==-1L)printf(error\n); 变量i存放当前位置,如调用函数出错(如不存在此文件),则输出“error”。 四、 ftell函数、ferror函数、clearerr函数 用ftell函数可以得到当前位置。如果ftell函数返回值为-1L,表示出错。如: i=ftell(fp); if(i==-1L)printf(error\n); 变量i存放当前位置,如调用函数出错(如不存在此文件),则输出“error”。 ferror函数 在调用各种输入输出函数(如putc、getc、fread、fwrite等)时,如果出现错误,除了函数返回值有所反映外,还可以用ferror函数检查。它的一般调用形式为ferror(fp); 如果ferror返回值为0(假),表示未出错。如果返回一个非零值,表示出错。应该注意,对同一个文件每一次调用输入输出函数,均产生一个新的ferro

文档评论(0)

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

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档