- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
关于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为文件长度
文件指针的特性:
可在“负无穷”到
文档评论(0)