C语言程序设计案例教程 第2版 教学课件 作者 廖湖生 叶乃文 周珺 文件6.3.pptVIP

C语言程序设计案例教程 第2版 教学课件 作者 廖湖生 叶乃文 周珺 文件6.3.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
6.3 文件 持久性数据 生存器超过程序运行时间 由文件、数据库维护 文件 由文件名标识、文件系统管理 种类不同:扩展名不同 文本文件:由字符组成,可读 二进制文件:专用格式,由专用软件处理 文件的访问 被看作是一组连续的字节(流) 文本文件:常用顺序访问 二进制文件:常用随机访问 C语言对文件的支持 结构 FILE 描述文件处理所需的数据结构 文件处理函数 文件打开与关闭 fopen, fclose 格式化输入输出 fscanf, fprintf 字符输入输出 getc, putc 二进制输入输出 read, write 标准输入流、输出流、错误输出流 stdin, stdout, strerr 例6-12:创建一个文本文件,保存各部门的电话费 fee.txt 文本格式 每行保存一个部门的信息 包括:部门代码、名称、电话费 算法: 创建文件 fee.txt 读入一行数据 如果是空行,则关闭文件,终止程序 获得其中的部门信息 写入文件 重复1-5 程序实现 main( ) { FILE *fp; /* 文件指针 */ char buf[ 256 ]; /* 行缓冲区 */ int no; /* 部门代码 */ char name[ 64 ]; /* 部门名称 */ double fee; /* 电话费 */ fp = fopen( “fee.txt”, “w” ); /* 创建文件 */ if( fp == NULL ) { /* 打开失败?*/ printf( “Fail to create fee.txt\n” ); return 0; } /* 接下页 */ 程序实现(续) while( 1 ) { /* 无限循环 */ gets( buf ); /* 读入一行 */ if( buf[0] == ‘\0’ ) break; /* 空行 */ if( 3 != sscanf( buf, “%d%s%lf”, no, name, fee ) ) continue; /* 分解数据 */ fprintf( fp, “(%d)%.64s:%lf\n”, no, name, fee ); /* 写入文件 */ } fclose( fp ); /* 关闭文件流 */ } 程序分析 文件的标识 文件指针 fp 代表该文件 流式操作:自动移动读写位置 使用前打开、使用后关闭 打开方式 w 写打开 用于创建新文件 r 读打开 用于访问指定文件 a 追加打开 用于在指定文件中添加 各种 C 编译有不同的扩充 各种格式化输入输出 标准输入输出流、输入输出文件流、字符串(数组) 例6-13:文件的复制 实现DOS命令 COPY 文件名1 文件名2 基本算法 从命令行获得两个文件名 打开两个文件 逐个读字符,写入目标文件 直至读文件结束 关闭两个文件 程序实现 void main( int ac, char *av[ ] ) { int ch; FILE *fp1, *fp2; if( ac 3 ) { printf( “使用方法: copy file1 file2\n” ); return; /* 非法命令格式 */ } fp1 = fopen( av[1], “r” ); /* 源文件 */ fp2 = fopen( av[2], “w” ); /* 目标文件 */ if( fp1 == NULL || fp2 == NULL ) { printf( “Fail to open the file\n” ); return; /* 文件打开失败 */ } /* 后续 */ 程序实现(续) do { ch = getc( fp1 ); /* 读一字符 */ if( EOF == ch ) /* 文件结束符 */ break; /* 输入结束 */ putc( ch, fp2 ); /* 写一字符 */ } while( 1 ); fclose( fp1 ); /* 关闭两个文件 */ fclose( fp2 ); } /* 文件字符输入输出的使用 */ 二进制文件 采用数据内存表示的格式 主要函数 int fread( char *buf, long sz, int n, FILE *fp ); 从文件 fp 中读取 n 个数据项到 buf 指定的存储空间内,返回实际读入的数据项个数 sz 是数据项占用的字节数 int

您可能关注的文档

文档评论(0)

带头大哥 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档