- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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
您可能关注的文档
- 物理学[毕业论文].doc
- 特殊过程施工作业指导书.doc
- 物质的简单分类及其应用(学案).doc
- 状元作业Unit4What_is_the_best_movie_theater.doc
- 浙江省考时政备考之解读中央财经领导小组第十二次会议.doc
- 实验探究题专题复习(化学部分).doc
- 淄博市淄川区2008—2009学年度第一学期教学质量诊断性检测初一历史试卷.doc
- 年级第3次月考历史试题.doc
- 湖北教师招聘2014年湖北省直事业单位基本素质A卷真题及答案三.doc
- 环境生物学 孔繁翔 部分课后答案 高等教育出版社.doc
- 第18讲 第17课 西晋的短暂统一和北方各族的内迁.docx
- 第15讲 第14课 沟通中外文明的“丝绸之路”.docx
- 第13课时 中东 欧洲西部.doc
- 第17讲 第16 课三国鼎立.docx
- 第17讲 第16课 三国鼎立 带解析.docx
- 2024_2025年新教材高中历史课时检测9近代西方的法律与教化含解析新人教版选择性必修1.doc
- 2024_2025学年高二数学下学期期末备考试卷文含解析.docx
- 山西版2024高考政治一轮复习第二单元生产劳动与经营第5课时企业与劳动者教案.docx
- 第16讲 第15课 两汉的科技和文化 带解析.docx
- 第13课 宋元时期的科技与中外交通.docx
最近下载
- 西北工业(大学)数学分析历年考研试题.pdf
- 《Unit 4 Fun with numbers》教学设计外研版(三起)(2024)小学英语三年级上册.docx VIP
- 135战法55种方法图解(宁俊明版).docx VIP
- 小学生主题教育班会 不挑食我最棒 课件(共27张PPT).pptx VIP
- 工贸企业重大事故隐患判断标准解读培训课件.pdf
- 上海市2023年高考语文模拟题汇编-阅读与鉴赏(现代文阅读).doc
- 中国居民膳食指南2022全文.pdf
- 2024年《消费者权益保护法实施条例》全文解读PPT课件.pptx
- 商业商户店铺装修手册.doc
- 新人教版英语七年级上册全册课件(2024年新教材).pptx
文档评论(0)