第十三章文件综述.ppt

  1. 1、本文档共42页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第十三章 文件;本章要点;C文件概述;C文件概述;文件的分类 按数据的组织形式: ASCII文件(文本文件):每一个字节放一个ASCII代码 二进制文件:把内存中的数据按其在内存中的存储形 式原样输出到磁盘上存放.;例:整数10000在内存中的存储形式以及分别按ASCII码形式和二进制形式输出如下图所示:;ASCII文件便于对字符进行逐个处理,也便于输出字符。但一般占存储空间较多,而且要花费转换时间。 二进制文件可以节省外存空间和转换时间,但一个 字节并不对应一个字符,不能直接输出字符形式。 一般中间结果数据需要暂时保存在外存上,以后又 需要输入内存的,常用二进制文件保存。 ;C语言对文件的处理方法: 缓冲文件系统:系统自动地在内存区为每一个正 在使用的文件开辟一个缓冲区。用缓冲文件系统 进行的输入输出又称为高级磁盘输入输出。 非缓冲文件系统:系统不自动开辟确定大小的缓 冲区,而由程序为每个文件设定缓冲区。用非缓 冲文件系统进行的输入输出又称为低级输入输出 系统。;说明;文件类型指针;文件类型指针;文件的打开与关闭;文件使用方式     含   义 “r” (只读)为输入打开一个文本文件 “w” (只写)为输出打开一个文本文件 “a” (追加)向文本文件尾增加数据 “rb” (只读)为输入打开一个二进制文件 “wb” (只写)为输出打开一个二进制文件 ab“ (追加)向二进制文件尾增加数据 r+“ (读写)为读/写打开一个文本文件 w+” (读写)为读/写建立一个新的文本文件 a+” (读写)为读/写打开一个文本文件 rb+“ (读写)为读/写打开一个二进制文件 “wb+“ (读写)为读/写建立一个新的二进制文件 “ab+” (读写)为读/写打开一个二进制文件;文件的打开与关闭;文件的读写;fgetc函数 函数调用: ch=fgetc( fp ); 函数功能: 从指定的文件读入一个字符,该文件必须是以读或 读写方式打开的。 返回值: 读取成功一个字符,赋给ch。 如果遇到文件结束符,返回一个文件结束标志EOF(-1) 。;常见的读取字符操作;常见的读取字符操作;fputc和fgetc函数使用举例;将一个磁盘文件中的信息复制到另一个磁盘文件中 。 ;复制一个二进制文件,利用main参数,在输入命令行是将两个文件名输入。;文件的读写;若有如下结构类型: struct student_type {char name[10]; int num; int age; char addr[30];} stud[40]; 可以用fread和fwrite来进行数据的操作: for(i = 0; i 40;i++) fread(stud[i], sizeof(struct student_type),1,fp);  for(i = 0; i 40;i++) fwrite(stud[i], sizeof(struct student_type),1,fp);;从键盘输入4个学生的有关数据,然后把它们转存 到磁盘文件上去。;验证磁盘文件“stu-list”中是否已存在此数据,用以下程序从“stu-list”文件中读入数据,然后在屏幕上输出;如果已有的数据已经以二进制形式存储在一个磁盘文件“stu-dat”中,要求从其中读入数据并输出到 “stu-list”文件中,可以编写一个load函数,从磁盘文件中读二进制数据。 ;3) 格式化读写函数(fprintf()和fscanf()) 函数调用: fprintf ( 文件指针,格式字符串,输出表列); fscanf ( 文件指针,格式字符串,输入表列); 函数功能: 从磁盘文件中读入或输出字符。 例: fprintf(fp,”%d,%6.2f”,i,t); fscanf(fp,”%d,%f”,i,t);;用fprintf和fscanf函数对磁盘文件读写,使用方便,容易理解,但由于在输入时要将ASCII码转换为二进制形式,在输出时又要将二进制形式转换成字符,花费时间比较多。因此,在内存与磁盘频繁交换数据的情况下,最好不用fprintf和fscanf函数,而用fread和fwrite函数。;4) 其他读写函数 putw()和getw() 函数调用: putw(int i,FILE * fp); int i = getw(FILE * fp); 函数功能: 对磁盘文件中读写一个字(整数)。 例: putw(10,fp); i = getw(fp)

文档评论(0)

希望之星 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档