- 1、本文档共53页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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
您可能关注的文档
- SPC应用管理图.ppt
- ISO质量管理体系-课件材料大全(集合).ppt
- Prome-3技术互作.ppt
- 第2章-质量管理.ppt
- 高考英语一轮复习突破高频考点系列之单元考点:人教新课标必修1-Unit-1-Friendship-(115张课件).ppt
- 第2章-汽车行驶特性.ppt
- 高考语文专题(11)古代诗歌阅读和答案(Word版).doc
- 骨折固定生物力学.ppt
- 《时代广场蟋蟀》阅读答案.doc
- 《生物体基本结构》第二课时.ppt
- 2024-2025学年培养自我效能感的小学心理教育设计.docx
- 鲁教版美术一年级下册 第5课《有趣的半圆形》 教学设计.docx
- 2024-2025学年学校环境与霸凌行为的联系教学设计.docx
- 2024-2025学年培养小学生时间管理能力的教学设计.docx
- 4.12依法生产经营,保护环境(教学设计)-《职业道德与法律》同步教学(高教版).docx
- (中职) 网店客服(第二版)教案8-1同步教学教案.docx
- 2024-2025学年培养小学生自我调节能力的德育设计.docx
- 2024-2025学年小学安全教育教学设计的多媒体运用.docx
- 2024-2025学年小学安全教育观念教学设计总结.docx
- 人教版七年级音乐上册(简谱)第2单元 《歌唱祖国》教学设计.docx
文档评论(0)