- 1、本文档共15页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
关于FILE指针的使用
关于FILE指针 使用
语言文件系统称为流文件(Stream),正文流(正文文件),二进制流(二进制文件)
缓冲与非缓冲文件
顺序操作文件与随机操作文件
顺序文件:读/写第K个数据块之前必须读/写第1至K-1个数据块;
随机文件:可直接读/写第K个数据块;
正文文件的操作一般是顺序文件;
二进制文件的操作都是随机文件。一、文件操作的一般过程
定义文件指针 FILE *打开文件 fopen对文件进行读写
二、系统已定义的与文件操作有关的数据结构全都在stdio.h中
FILE 结构体 FILE *fr,*fp,*fw;FILE* 指针作为文件句柄,是文件访问的唯一标识,它由fopen函数创建,fopen打开文件成功,则返回一个有效的FILE*指针,否则返回空指针NULL
标准文件指针 FILE *stdin,*stdout,*stderr, stdin 指键盘输入 stdout 指显示器 stderr 指出错输出设备,也指显示器这些变量已成功初始化,可直接使用.
三、常用操作函数
fopen 格式:FILE *fopen(文件名字符串,打开方式串) 例:FILE *fr; fr=fopen(c:\\user\\abc.txt,r); 字符串操作: 1)r或rt:正文文件只读方式打开。文件不存在,则打开失败(顺序读)w或wt:正文文件只写方式打开。若文件不存在,则建立文件;若文件存在,则删除文件内容,重建空文件(顺序写);(截取文件长度为0) 2) a或at:正文文件添加方式。文件不存在,则建立文件(顺序添加写) 3) r+或rt++:正文文件读写打开,文件不存在,则打开失败(顺序读/写、随机读/写,含改写与添加); 4) w+或w++:正文文件读写方式打开,文件不存在,则建立文件;否则截取文件长度为0(顺序读/写,随机读/写,对写入的内容可以读或改写或添加) 5) ~b:正文文件→二进制文件 顺序读→顺序/随机读(“rb”) eg:r或rt→rb 顺序写(wb) 顺序添加写(ab) 顺...,随...,含...(rb+) 顺...,添加(wb+) 顺...,添加(ab+) 使用fopen时,但凡含r字母的打开方式,一定要加判断,文件是否打开成功,否则程序不会报告错误,会运行下去。 如:FILE *fr; fr=fopen(abc.txt,r); if(fr==NULL){ printf(File not open!\n); return; /*或exit(1);*/
文件关闭fclose(FILE *fp)一般地,fclose(fp)与fopen应配对使用,特别是含有写方式的文件,若不关闭会造成文件数据丢失。fcloseall(void):关闭当前所有打开的文件。
单字节的输入函数可适用于二进制与正文文件操作int fgetc(FILE *fp) int fputc(char ch.FILE *fp)fgetc的返回值都是正数(0~255)文件无可读字节则返回-1(EOF)正文文件与二进制文件读写的区别:正文文件读到13 10时,将自动跳过13,读出10并返回;正文文件写入10时,首先自动写入13再写入10.
文件指针与文件指针操作函数文件指针是文件操作系统数据结构内部的一种数据指针,它用于标注文件当前读写位置,C语言中,文件指针以字节为单位,文件第一个字节位置号为0,若文件长度为N个字节,则最后一个字节的位置号为N-1,长度为N字节的文件有效读写范围为0~N-1。指针位置在此之外进行读/写操作,则失败;读写函数返回-1(EOF);C语言的文件指针采用long型值;执行文件读/写操作后,文件指针自动向后移动,指到新的待读/写位置。文件指针移动函数rewind(FILE *fp)文件指针重置为0fseek(FILE *fp,long off,int pos) 从pos位置开始,移动off个字节。pos: 0 文件开始 1 文件当前指针位置 2 文件结尾(文件长度为N,则指针位置为N)例:fseek(fp,0l,0);←→rewind(fp)fseek(fp,-1L,2); /*移动指针到最后一个字节*/fseek(fp,-2L,1); /*移动指针到当前位置的前两个位置*/long ftell(FILE *fp)求当前指针位置例:求文件长度fseek(fp,OL,2);len=ftell(fp);则len为文件长度
文件指针的特性:
可在“负无穷”到
您可能关注的文档
- 第6章 数 字 动 画.ppt
- 第5章 扭曲与生成特效.ppt
- “三学三讲三增强”形势任务教育阶段性总结汇报及打谱.doc
- 4.8生物多样性的意义2.ppt
- 日产新阳光简介.ppt
- 单元2 选购计算机硬件--显卡和显示器.ppt
- 11款Accord&11款Teana变化点信息共享.ppt
- 2005复习大纲-选择、判断.doc
- 河北省2015年电算化客观题库.doc
- 2005网多复习大纲a.doc
- 可编辑文档:证券行业2024年投资策略分析报告:供给侧优化,关注底部机会.pptx
- 中国新能源行业市场前景及投资研究报告:风光无限,风电,光伏,储能.pdf
- 公用事业行业市场前景及投资研究报告:火电电量增速转正,“煤硅”,风电,光伏,储能.pdf
- 2024年国家医保谈判品种分析报告.pdf
- 电网设备行业2024年市场前景及投资研究报告:景气持续,从周期迈向成长.pdf
- 可编辑文档:中国银行-银行业全球发展趋势和中行结构重组项目.pptx
- 资产配置研究系列分析报告:全球资产配置模型,市场短期波动.pdf
- 波动率因子改进分析报告:指数加权移动平均波动率.pdf
- 可编辑文档:中美消费板块市场前景及投资研究报告:港股.pptx
- 量化择时系列分析报告:成交量择时指标,VMACD_MTM.pdf
文档评论(0)