T-C-2-第10章-文件.ppt

  1. 1、本文档共53页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第十章 本章要点 文件的基本概念 文件的基本函数 文件的顺序读写 文件的随机读写 文件的简单应用 主要内容 10.1 C文件的有关概念 10.2 文件的打开与关闭 10.3 文件的顺序读写 10.4 文件的随机读写 10.5 提高部分 10.1 C文件的有关概念 10.1.1 什么是文件 10.1 C文件的有关概念 10.1.1 什么是文件 说明: (1)在向磁盘文件写数据时,只输出的字符串中的 有效字符,并不包括字符串结束标志“\0”。 (2)为运行简单,本例只输入3个字符串,如果有10 个字符串,只需把第7行的n=3改为n=10即可。 10.3 文件的顺序读写 10.3 文件的顺序读写 10.3.3 文件的格式化读写 函数调用: fprintf ( 文件指针,格式字符串,输出表列); fscanf ( 文件指针,格式字符串,输入表列); 函数功能: 从磁盘文件中读入或输出字符。 例: fprintf(fp,”%d,%6.2f”,i,t); fscanf (fp,”%d,%f”,i,t); 说明: 用fprintf和fscanf函数对磁盘文件读写 ,使用方便,容易理解,但由于在输入时 要将ASCII码转换为二进制形式,在输出 时又要将二进制形式转换成字符,花费时 间比较多。因此,在内存与磁盘频繁交换 数据的情况下,最好不用fprintf和 fscanf函数,而用fread和fwrite函数。 10.3 文件的顺序读写 10.3.4 用二进制方式读写文件 数据块读写函数(fread()和fwrite()) 函数调用: fread (buffer,size,count,fp); fwrite(buffer,size,count,fp); 参数说明: buffer:是一个指针。 对fread 来说,它是读入数据的存放地址。 对fwrite来说,是要输出数据的地址(均指起始地址)。 size: 要读写的字节数。 count: 要进行读写多少个size字节的数据项。 fp: 文件型指针。 使用举例: 若文件以二进制形式打开: fread(f,4,10,fp); 此函数从fp所指向的文件中读入10个4个字节的数 据,存储到数组f中。 10.3 文件的顺序读写 10.3.4 用二进制方式读写文件 使用举例: 若有如下结构类型: 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);  10.3 文件的顺序读写 10.3.4 用二进制方式读写文件 例10.4 从键盘输入10个学生的有关数据,然后把它们转存 到磁盘文件上去。 #include stdio.h #define SIZE 10 struct student_type {char name[10]; int num; int age; char addr[15]; }stud[SIZE];/* 定义全局结构体数组stud,包含4个学生数据 */ void save( ) /* 定义函数save,向文件输出SIZE个学生的数据 */ {FILE *fp; int i; if((fp=fopen (stu_dat,wb))==NULL) {printf(cannot open file\n); return; } for(i=0;iSIZE;i++) if(fwrite (stud[i],sizeof (struct student_type),1,fp)!=1) printf (file write error\n); fclose(fp); } void main() {int i; printf(“Please enter data of student:”); /*输入SIZE个学生的数据,存放在数组stud中 */ for(i=0;iSIZE;i++)/* scanf(%s%d%d%s,stud[i].name,stud[i].num,stud[i]. age,stud[i].addr); sa

文档评论(0)

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

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

1亿VIP精品文档

相关文档