第10章、利用文件保存数据.pptVIP

  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文档。上传文档
查看更多
文件缓冲区 缓冲文件系统 系统自动在内存区为程序中每一个正在使用的文件开辟一个文件缓冲区 数据从内存输出到磁盘时 先将数据送到内存的缓冲区,缓冲区满后一起送到磁盘 数据由磁盘读入到内存时 先将一批数据送到内存的缓冲区,缓冲区满后逐个将数据送到内存程序数据区(给程序变量) 缓冲区的大小由各个具体的C编译系统确定 */27 文件指针 文件信息区 内存中有一个文件信息区,用于存储文件的相关信息,如文件名、文件状态及文件当前位置等 文件信息保存在一个结构体变量中,结构体类型由系统声明,取名为FILE,定义FILE类型的信息包含在头文件stdlib.h中,不同的C编译系统的FILE类型不完全相同 定义FILE类型的变量 FILE f; f中存放文件的相关信息 定义指向文件型数据的指针变量 FILE *fp; fp指向某一个文件的文件信息区,通过该文件信息区中的信息能够访问该文件 指向文件信息区的指针变量也称为指向文件的指针变量 */27 内容进度 C文件的有关概念 文件的打开与关闭 文件的顺序读写 */27 文件的打开与关闭 打开文件 在读写文件之前应先打开文件 打开文件是指为文件建立相应的信息区和文件缓冲区 通常在打开文件时,指定一个指针变量指向该文件 关闭文件 是指撤销文件信息区和文件缓冲区,使文件指针变量不再指向该文件 */27 打开文件 fopen函数 用于打开文件,为文件建立相应的信息区和文件缓冲区 fopen(文件名,使用文件方式); fopen的返回值是指向被打开文件的指针,即返回被打开文件的文件信息区的起始地址 试图使用读方式打开一个不存在的文件、磁盘出故障、磁盘已满无法建立新文件时,会导致出错,fopen将返回一个空指针值NULL 文件出错时,可通过exit(0)关闭所有文件,终止正在执行的程序 文件使用方式 含义 如果指定文件不存在 r(只读) 为输入打开一个已存在的文本文件 出错 w(只写) 为输出打开一个文本文件 建立新文件 a(追加) 向文本文件尾添加数据 出错 rb(只读) 为输入打开一个二进制文件 出错 wb(只写) 为输出打开一个文本文件 建立新文件 ab(追加) 向二进制文件尾添加数据 出错 r+(读写) 为读写打开一个文本文件 出错 w+(读写) 为读写建立一个新的文本文件 建立新文件 a+(读写) 为读写打开一个文本文件 出错 rb+(读写) 为读写打开一个二进制文件 出错 wb+(读写) 为读写建立一个新的二进制文件 建立新文件 ab+(读写) 为读写打开一个二进制文件 出错 */27 关闭文件 fclose函数 用于关闭文件,撤销文件信息区和文件缓冲区,使文件指针变量不再指向该文件 fclose(文件指针); 使用完文件若不关闭将导致数据丢失,向文件写入数据时,先将数据输出到缓冲区,缓冲区满后才输出到文件,用fclose关闭文件时,先把缓冲区的数据输出到磁盘文件,然后释放文件指针变量 如果顺利关闭了文件,返回0,否则返回EOF(-1) */27 内容进度 C文件的有关概念 文件的打开与关闭 文件的顺序读写 */27 文件的顺序读写 对文件数据读写的顺序与数据在文件中的物理顺序一致 顺序写时,先写入的数据存放在文件中前面的位置,后写如的数据存放在文件后面的位置 顺序读时,先读文件中前面的数据,后读文件中后面的数据 */27 向文件读写一个字符 例10.1从键盘输入一些字符,逐个把它们送到磁盘上,直到输入一个“#”为止 */27 /*从键盘输入一些字符,逐个把它们送到磁盘上,直到输入一个“#”为止*/ #include stdio.h #include stdlib.h void main() { FILE *fp; char ch,filename[10]; printf(请输入所用的文件名); scanf(%s,filename); if((fp=fopen(filename,w))==NULL) /*打开输出文件*/ { printf(无法打开此文件\n); /*打开文件出错时,给予提示信息*/ exit(0); /*终止程序*/ } ch=getchar(); /*接收上面scanf语句最后输入的回车符*/ printf(请输入一个准备存储到磁盘的字符串(以#结束):); ch=getchar(); /*接收从键盘输入的第一个字符*/ while(ch!=#) /*输入#时结束循环*/ { fputc(ch,fp); /*向磁盘文件输出一个字符*/ putchar(ch); /*将输出到磁盘文件的字符输出到屏幕上*/ ch=getchar(); /*再接收一个键盘输入字符*/ } fclose(fp); /*关闭文件*/ putchar(

文档评论(0)

xiaohuer + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档