- 1、本文档共27页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第十章 文件 10.1 C文件概述 文件:存储在外部介质上数据的集合,是操作系统数据管理的单位 10.1.2 文件的访问方式 1、 文件操作过程 文件操作需要包括以下几个过程: ?文件指针定义 ?文件打开。 ?文件处理,执行以下两种操作中的一种; 读文件 写文件 ?文件关闭。 10.1.2 文件的访问方式 2、文件结构体FILE 缓冲文件系统为每个正使用的文件在内存开辟文件信息区 文件信息用系统定义的名为FILE的结构体描述 FILE定义在stdio.h中 文件类型指针 指针变量说明: FILE *fp; 用法: 文件打开时,系统自动建立文件结构体,并把指向它的指针返回来,程序通过这个指针获得文件信息,访问文件 文件关闭后,它的文件结构体被释放 10.2 格式化数据文件操作 C文件操作用库函数实现,包含在stdio.h 文件使用方式:打开文件--文件读/写--关闭文件 系统自动打开和关闭三个标准文件: 标准输入------键盘 stdin 标准输出------显示器 stdout 标准出错输出-----显示器 stderr 打开文件fopen 函数原型: FILE *fopen(char *name,char *mode) 文件关闭fclose 作用:使文件指针变量与文件“脱钩”,释放文件结构体和文件指针 函数原型:int fclose(FILE *fp) 格式化I/O:fprintf与fscanf 函数原型: -文件建立 【例10.1】键盘输入5位同学的3门课成绩,保存数据文件cj.dat中。 # include stdio.h main() { FILE*fp; /*定义文件指针*/ float sc1,sc2,sc3; int i; if((fp=fopen(cj.dat , w ))==NULL) { printf( \nCan not open file cj.dat.\n ); exit(1); } for(i=0;i5;i++) { printf( please input No.%d there scores: ,i+1); scanf( %d,%d,%d,sc1,sc2,sc3); fprintf(fp, %d,%d,%d\n,sc1,sc2,sc3); } fclose(fp); } -文件访问 【例10.2】显示【例10。1】所产生的数据文件cj.dat的内容,并计算各门课程的平均分。 #include stdio.h main() { FILE﹡fp; /*定义文件指针*/ float sc1,sc2,sc3,sum1=0,sum2=0,sum3=0; int i; if((fp=fopen(cj.dat , r ))==NULL) { printf( \nCan not open file cj.dat.\n ); exit(1); } for(i=0;i5;i++) { fscanf(fp, %d,%d,%d ,sc1,sc2,sc3); sum1=sum1+sc1; sum2=sum2+sc2; sum3=sum3+sc3; printf( The scores are:%d,%d,%d ,sc1,sc2,sc3); } fclose(fp); printf( The scores average are:%d,%d,%d\n ,sum/51,sum2/5,sum3/5); } -文件修改 【例10.3】追加一条记录到【例10.1】建立的数据文件cj.dat中。 #include stdio.h main() { FILE *fp; float sc1,sc2,sc3; if((fp=fopen( cj.dat , a ))==NULL) { printf( \nCan not open file cj.dat.\n ); exit(1); } printf( Please input third student’s three scores: ); scanf( %d,%d,%d ,sc1,sc2,sc3); fprintf(fp, %d,%d,%d\n ,sc1,sc2,sc3); fclose(fp); } 文件修改 # in
文档评论(0)