第10章 文件及文件管理.ppt

上传人:asd****56 文档编号:91069678 上传时间:2023-05-21 格式:PPT 页数:33 大小:301KB
返回 下载 相关 举报
第10章 文件及文件管理.ppt_第1页
第1页 / 共33页
第10章 文件及文件管理.ppt_第2页
第2页 / 共33页
点击查看更多>>
资源描述

《第10章 文件及文件管理.ppt》由会员分享,可在线阅读,更多相关《第10章 文件及文件管理.ppt(33页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、第第1010章章 文件及文件管理文件及文件管理(听明白、记住、会用)10.1 10.1 文件的基本概念文件的基本概念 文件:程序、数据、文档的总称输入:输入、读、取 输出:输出、写、存文件的存储方式:ASCII码 1024=49 48 50 52 =0100 1001 0100 1000 0101 0000 0101 0010 二进制存储方式:1024 =0000 0100 0000 000010.2 文件的打开与关闭10.2.1 文件的打开 FILE*fp;fp=fopen(文件名),);工作方式:读 写 追加 文本文件(只能读写)r w a 二进制文件(只能读写)rb wb ab 文本文件

2、(可读写)r+w+a+二进制文件(可读写)rb+wb+ab+(r w a b +)例:打开一个将计算结果能够存放在外存的文件 FILE *fp;fp=fopen(“result.c”,”w”);说明:1 工作方式 r 读 w 写 a 追加 b 二进制文件 +可读、可写2.用w打开的文件,若原文件中已有文件内容,则将原内容清除。3.用a打开的文件,文件指针指向文件尾部。4.若文件打开出错,则返回一个NULL值。因此常常用下列格式提示出错:if(fp=fopen(“r.c”,“r”)=NULL)printf(“cannot open this file”);exit(0);其中:exit(0)为返

3、回编辑状态,0可省。5.打开文件时,工作方式可以组合。例如:rb,wb,b+fclose(fp)10.3 文件的读写11.3.1 把一个字符输出到文件中 fputc(ch,fp);11.3.2 从文件中读出一个字符 ch=fgetc(fp)例:将从键盘上输入的内容以文本方式存于文件 file.c 中 10.2.2 文件的关闭算法:1.定义文件指针变量2.打开写文件3.输入字符,遇“#”标记结束4.输出到文件,转第3步5.关文件 程序:#include main()FILE*fp;char ch;if(fp=fopen(file.c,w)=NULL)printf(errorn);exit(0);

4、ch=getchar();while(ch!=#)fputc(ch,fp);ch=getchar();例:将存于文件 file.c中的内容再取出显示算法:1.定义文件指针变量2.打开读文件3.取字符,到文件未结束4.输出到屏幕,转第3步5.关文件 程序:#includemain()FILE*fp;char ch;if(fp=fopen(file.c,r)=NULL)printf(errorn);exit(0);ch=fgetc(fp);while(!feof(fp)printf(%c,ch);ch=fgetc(fp);例:完成文件from.c 到文件to.c 的复制算法:1.定义两个文件指针变

5、量 2.打开读文件(from.c)3.打开写文件(to.c)4.从from读入字符,输出到文件to,直到文件结束。(feof(fp)为1时,文件指针指到文件尾。5.关文件 程序:#includemain()FILE*fp1,*fp2;char ch;clrscr();if(fp1=fopen(“from.c,r)=NULL)printf(errorn);exit(0);if(fp2=fopen(“to.c,w)=NULL)printf(errorn);exit(0);while(!feof(fp1)ch=fgetc(fp1);fputc(ch,fp2);putchar(ch);例:统计文件fr

6、om.c 的字符个数例:将两个文件合并例:用二进制方式将c盘某一文件复制到软盘上例:将一个c 语言程序读出显示在屏幕上#include main()FILE*fp;char ch;if(fp=fopen(“10-1.1,r)=NULL)printf(errorn);exit(0);while(!feof(fp)ch=fgetc(fp);putchar(ch);例:使用 copy from.c to.c 命令格式复制文件#include main(int argc,char*argv)FILE*fp,*fp1;char ch;crscr();if(argc!=3)printf(num error

7、);if(fp=fopen(argv1,r)=NULL)printf(error1n);exit(0);if(fp1=fopen(argv2,w)=NULL)printf(error2n);exit(0);while(!feof(fp)ch=fgetc(fp);fputc(ch,fp1);putchar(ch);10.3.3 将数据按指定格式输出到文件 fprinf(fp,“”,);10.3.4 将数据按指定格式读出且显示fscanf(fp,);例:将1到10 的平方根存于文件result.c中#include“stdio.h”#include“math.h”main()int k;FILE

8、*fp1;fp1=fopen(result.c,”w”);For(k=1;k11;k+)fprintf(fp1,%d%5.2f,k,sqrt(k);close(fp1);例:将上例建立的文件读出显示在屏幕上#include“stdio.h”main()FILE*fp;int i,n;float s;if(fp=fopen(result.c,r)=NULL)printf(errorn);exit(0);for(i=1;i=10;i+)fscanf(fp,%d%f,&n,&s);printf(%5d%5.2fn,n,s);fclose(fp)例:利用写字板编辑环境建立一个成绩数据文件(score.

9、c,学号,姓名,成绩,用“”分开,读入时,各格式之间不加任何符号),然后利用该文件输出每人的信息。main()FILE*fp;int n;char s3;int i;if(fp=fopen(d:tcname.txt,r)=NULL)printf(errorn);for(i=1;i=3;i+)fscanf(fp,%d,%s,&n,s);printf(%5d%5sn,n,s);fclose(fp);总结:#includemain()FILE*fp;long n;char name10;float s;if(fp=fopen(“score.c,r)=NULL)printf(errorn);exit(

10、0);while(!feof(fp)fscanf(fp,%ld%s%fn,&n,name,&s);printf(%ld,%s,%fn,n,name,s);fclose(fp);10.3.5 结构变量写语句fwrite(写的内容(buffer),一次写的大小(size),写多少次(count),fp)10.3.6 10.3.6 结构变量读语句结构变量读语句 fread(存放位置,一次写的大小,写多少次,fp)例:利用TC环境建立的学生成绩文件,利用结构变量再建一个文件,利用该结构变量输出每一个学生的信息程序:#include struct student long n;char name4;in

11、t s;stu10;main()FILE*fp1,*fp2;int i;i=1;clrscr();if(fp1=fopen(myc.c,r)=NULL printf(errorn);exit(0);if(fp2=fopen(out.c,w+)=NULL)exit(0);clrscr();while(!feof(fp1)fscanf(fp1,%ld%s%dn,&stui.n,stui.name,&stui.s);printf(%ld,%s,%dn,stui.n,stui.name,stui.s);fwrite(&stui,sizeof(struct student),1,fp2);i=i+1;f

12、close(fp1);rewind(fp2);i=1;while(!feof(fp2)fread(&stui,sizeof(struct student),1,fp2);printf(%ld,%s,%dn,stui.n,stui.name,stui.s);i+;fclose(fp2);1 建立文本文件,各数据项间用“,”,使用fscanf()语句时各格式符间也用“,”2 使用(!feof(fp2)函数,注意空格和使用文件指针。3 注意向字符数组读入数据,名字前不能用&。4 在结构类型中定义字符数组时,下标最大值比实际串长度大1。5 在写字板中保存的文件,在浏览器中不显示后缀。6 Fscanf(

13、)句中一定不要使用“n。经验总结:7注意当前目录(进入时目录为当前目录)。8注意系统环境与配置。9又读又写的文件,打开文件时注意使用“+“。10使用while()语句时,注意准备记数变量。11Fread(),fwrite()语句主要用于结构类型的读和写。12注意程序中的函数的用法及其意义。10.分段调试程序的方法要掌握。14注意“=“与”=“的用法。15文件指针的名字在定义时注意使用“*“。16注意三组读写语句的区别。17多上机注意不断总结经验。18概念一定要理解透。例:产生10个10以内的随机整数#include stdio.h#include math.hmain()FILE*fp;int

14、 i;srand(1);if(fp=fopen(r2.c,w)=NULL)printf(errorn);exit(0);for(i=1;i=10;i+)fprintf(fp,%d%dn,i,rand()%10);fclose(fp);例:将上题保存的数据读出显示例:将上题保存的数据读出显示#include stdio.hmain()FILE*fp;int n,s,i;if(fp=fopen(r2.c,r)=NULL)printf(errorn);exit(0);for(i=1;i=10;i+)fscanf(fp,%d%d,&n,&s);printf(%5d%5dn,n,s);close(fp)

15、;例:统计10以内的每个数各有多少?#include stdio.hmain()FILE*fp;int n,s,i;static int num11;if(fp=fopen(r2.c,r)=NULL)printf(errorn);exit(0);for(i=1;i=10;i+)fscanf(fp,%d%d,&n,&s);nums+;printf(%5d%5dn,n,s);close(fp);for(i=0;i11;i+)printf(%d%dn,i,numi);例:生成4个商场一年中每个月销售金额(100万元以内),然后统计每个商场年平均销售金额。#include stdio.h#includ

16、e math.hmain()FILE*fp;int i,k,n,s,m;srand(1);if(fp=fopen(r2.c,w)=NULL)printf(errorn);exit(0);for(k=1;k5;k+)fprintf(fp,%5d,k);for(i=1;i=12;i+)fprintf(fp,%5d,rand()%100);fclose(fp);if(fp=fopen(r2.c,r)=NULL)printf(errorn);exit(0);for(k=1;k5;k+)s=0;fscanf(fp,%5d,&n);printf(%d,n);for(i=1;i=12;i+)fscanf(fp,%5d,&m);printf(%5d,m);s=s+m;printf(%6.2fn,s/12.);fclose(fp);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 项目管理

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com