- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
高级语言程序设计 及其课程设计 ———— C语言 主讲人:傅守忠(基础教学部) E-Mail:szfu@; shzhfu@ 第二十二讲: 随机访问文件 上一讲的主要内容 文件指针 FILE *指针变量名; 打开文件 指针变量名=fopen(文件名, 方式); 方式: r-读, w-写, a-追加, +-读写, b-二进制, t-文本 字符存取: fgetc(文件指针); fputc(字符, 文件指针); 字符串存取: fgets(串名, 长度, 文件); fputs(串名, 文件); 无格式存取: fread(数据区, 块大小, 块数, 文件); fwrite(数据区, 块大小, 块数, 文件); 格式化读写 类似与scanf和printf, 只是指定一个操作的文件. 具体格式: fscanf(文件变量, 格式控制符, 变量地址(表) ); fprintf(文件变量, 格式控制符, 输出参数(表)); 特别当文件变量分别为stdin和stdout时, 完全等价于scanf和fprintf. 例: 格式输出到文件 见程序 例: 从文件中格式输入 见程序 随机访问文件 前面所讲对文件的操作都是顺序的, 即打开文件时文件(读写)指针指向其第一个字节, 随着读或写操作, 指针逐步后移, 直至文件尾部。 随机访问的关键就是控制文件指针, 使其可以移到需要的位置. 重置文件指针 该函数是将文件指针重新设置到初始状态(即指向文件头), 格式为: rewind(文件名); 例: 设d:\num.txt的内容为: 1234567890 例 移到文件指针 将文件指针移到指定的位置, 格式: fseek(文件, 位移量, 方式); 其中位移量是一个带符号的长整数, 整数表示向尾部方向移到, 负数表示向头部方向移到; 方式可选: 0(或SEEK_SET): 从文件头开始; 1(或SEEK_CUR): 从当前位置开始; 2(或SEEK_END): 从文件尾部开始. 例 #includestdio.h #includestdlib.h void main() { FILE *fp; fp=fopen(d:\\num.txt, r); if(!fp) { …… } printf(%c,fgetc(fp)); fseek(fp, -1L, 1); printf(%c,fgetc(fp)); 判断文件结束和指针位置 判断文件结束函数格式: feof(文件); 已经执行文件尾, 返回”真”, 否则返回”假”. 读取当前指针位置的函数格式: ftell(文件); 返回当前位置相对于文件头的偏移量(故是个非负数), 若返回-1L, 在表示出错. 其它函数 ferror(文件指针); 判断对文件fp的最近一次操作(如读写或定位等)是否有错, 无错返回0, 有错则根据错误类型返回不同的值. clearer(文件指针); 清除出错标志(ferror()的值)和文件结束标志(feof()的值). 例1(简单加密及相应的减密) 例(文件中小写转大写) * * ” ” ” ” ” ” void main() { char ch; FILE *fp; fp=fopen(d:\\num.txt, r); ch=fgetc(fp); printf(%c ,ch); ch=fgetc(fp); printf(%c ,ch); ch=fgetc(fp); printf(%c ,ch); rewind(fp); ch=fgetc(fp); printf(%c ,ch); fclose(fp); printf(\n); } fseek(fp, 3L, 1); printf(%c,fgetc(fp)); fseek(fp, -1L, 2); printf(%c,fgetc(fp)); fseek(fp, -3L, 2); printf(%c,fgetc(fp)); fseek(fp, 0L, 2); printf(%c,fgetc(fp)); fclose(fp); printf(\n); } ”
原创力文档


文档评论(0)