Lesson23讲述.ppt

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

Lesson 23 文件 文件打开与关闭 文件字符读写 文件字符串读写 文件 持久化存储数据 外存数据以文件形式组织 依组织形式不同,分为两类: 文本文件 二进制文件 文本文件 以字符为单位,每个字符一个字节,存放ASCII码 例如: 00111000001101110011011000110101 存放8765 有若干文本行,每行以换行符’\n’结束 文本文件结束标志是EOF,它的值为-1 二进制文件 以二进制形式存储数据 例如:数值8765 存放:0010001000111101 需要两个字节存储这个数值 所以,二进制文件也可以看成字节序列,称为字节流,有了这一特征,也将文件称为流式文件 文件指针 FILE结构:一个内存中的FILE结构对应一个磁盘文件, FILE结构声明在stdio.h中。 typedef struct { int level; /* 文件缓冲区的占用状况 */ unsigned flags; /* 文件状态标志 */ char fd; /* 文件描述符 */ unsigned char hold;/*没有文件缓冲区时保存字符*/ int bsize; /* 文件缓冲区大小 */ unsigned char *buffer; /* 数据缓冲区 */ unsigned char *curp; /* 指向当前的读写位置 */ unsigned istemp; /* 临时文件指示器 */ short token; /* 用于有效性检查 */ } FILE; 打开文件 使用文件,先定义文件指针 FILE * 指针变量名; FILE *fp; 打开文件,系统自动创建一个FILE结构,并提供指向此结构的指针。 库函数: FILE *fopen(char *fname, char *mode) FILE *fp; if( fp = fopen(“c:\\file.dat, “r )==NULL ) printf(“\n不能打开文件 ); 文件操作模式 mode参数的值 关闭文件 打开文件后必须关闭文件,否则可能造成文件指针泄漏或文件数据丢失。 完成库函数:成功返回0,否则为非0值 int fclose(FILE *fp) if( fclose(fp) ) printf(“\n文件关闭有错误 ); 文件读写 打开文件后可对文件进行读写操作。 库函数中有若干文件读写函数: 字符读写操作 字符串读写操作 数据块读写操作 格式化读写操作 字符读写操作 int fgetc(FILE *fp) 在stdio.h中 从fp所指文件的当前位置读取一个字符,并将文件位置指示器增大; 返回值为字符转换的整数。 到达文件尾时返回值为EOF int fputc(int c, FILE *fp) 在stdio.h中 将字符c写到fp所指的文件的当前位置,并将文件位置指示器增大; 返回值为所写的字符的值; 字符读写操作 例题:读取一个文本文件,并将内容显示在屏幕上。 #include stdio.h int main() { FILE *fp; int ch; if( ( fp=fopen(e:\\a.txt,r) )==NULL ){ printf(打不开文件); return -1; } ch = fgetc( fp ); while( ch!=EOF ){ putchar(ch); ch = fgetc( fp ); } fclose(fp); putchar(\n); return 0; } 字符读写操作 例题:文本文件拷贝(从a.txt拷贝到b.txt) #include stdio.h int main() { FILE *fp1, *fp2; int ch; if( ( fp1= fopen (e:\\a.txt,r) )==NULL ){ printf(打不开旧文件); return -1; } if( ( fp2=fopen(e:\\b.txt,w))==NULL ){ printf(打不开新文件); return -1; } while( (ch=fgetc(fp1))!=EOF ){ fputc( ch, fp2 ); } fclose(f

文档评论(0)

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

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

1亿VIP精品文档

相关文档