c语言文件中数据的访问与存储资料

上传人:w****i 文档编号:95417166 上传时间:2019-08-18 格式:PPT 页数:55 大小:407KB
返回 下载 相关 举报
c语言文件中数据的访问与存储资料_第1页
第1页 / 共55页
c语言文件中数据的访问与存储资料_第2页
第2页 / 共55页
c语言文件中数据的访问与存储资料_第3页
第3页 / 共55页
c语言文件中数据的访问与存储资料_第4页
第4页 / 共55页
c语言文件中数据的访问与存储资料_第5页
第5页 / 共55页
点击查看更多>>
资源描述

《c语言文件中数据的访问与存储资料》由会员分享,可在线阅读,更多相关《c语言文件中数据的访问与存储资料(55页珍藏版)》请在金锄头文库上搜索。

1、第6章文件中数据的访问与存储,6.1文件的概念和分类 6.2文件中数据的读写步骤 6.3文本文件中数据的读写操作,P191,6.1文件的概念和分类,P192,文件是存储在外部介质上数据的集合。存储在磁盘上的文件称为磁盘文件。,6.1文件的概念和分类,P192,按文件的内容分: 程序文件和数据文件 按文件中数据的组织形式分: 文本文件和二进制文件,6.1文件的概念和分类,P192,如果要访问文件中的数据或向文件中存储数据,都要以文件名为标识。 仅介绍文本文件中数据的读写方法。,6.2文件中数据的读写步骤,P192,(1)打开文件 无论对文件进行读还是写操作,都需要先打开文件,打开文件用fopen

2、函数。 (2)读写文件 写就是将内存中的数据存到文件中去。 主要介绍fscanf和fprintf函数。 (3)关闭文件 当文件不再使用时,需将其关闭。关闭文件用fclose函数。,6.3.1向文本文件中写数据 6.3.2从已有的文本文件中读数据 6.3.3文本文件中对数据的读写操作,6.3文本文件中数据的读写操作,P192,6.3.1向文本文件中写数据,P192,永久性地存放数据,如存储测量数据结果、学生成绩存档等,在C语言中用文件。可以用fprintf函数向文本文件中写数据。,问题的提出,【实例6-1】改写实例1-1。编写程序,将如图1.2所示的问候语写到d盘下c文件夹中的“f1.txt”文

3、件中。,任务与分析,6.3.1向文本文件中写数据,P192,操作步骤,#include main() 定义文件指针fp 打开(或建立)d盘c文件夹中的“f1.txt”文件 将问候语写入“f1.txt”文件 关闭文件 ,FILE *fp;,fp=fopen(“d:cf1.txt“,“w“);,fprintf(fp,“n“); fprintf(fp,“n“); fprintf(fp,“n“); fprintf(fp,“n“); fprintf(fp,“n“); fprintf(fp,“n“); fprintf(fp,“n“);,fclose(fp);,【实例6-2】编写程序,用人机对话的形式随机产

4、生3道100以内加法题,并将题目和用户输入的答案写到d盘c文件夹中的“f2.txt”文件中。,P194,操作步骤,#include #include #include main() 定义整型变量a、b、c和i 定义文件指针fp,int a,b,c,i; FILE *fp;,操作步骤,打开d盘c文件夹中的“f2.txt”文件 随机产生三个题目,fp=fopen(“d:cf2.txt“,“w“); if(fp=NULL) printf(“Can not open the file.n“); exit(0); ,srand(time(0); for(i=1; i=3; i+) a=rand()%10

5、0; b=rand()%100;,文件打开失败,操作步骤,等待键盘输入答案 将题目和答案存入“f2.txt”文件 关闭文件 ,fprintf(fp,“(%d) %d+%d=%dn“, i,a,b,c); ,fclose(fp);,printf(“第%d题:%d+%d=“,i,a,b); scanf(“%d“,形式接近,【实例6-3】编写程序,将英汉对照表写到当前文件夹中的“f3.txt”文件中。,P195,操作步骤,#include #include struct list 定义存放中文单词的成员 定义存放英文单词的成员 ; main() 定义名为list的结构体类型数组a并初始化 定义循环变

6、量i 定义文件指针fp 打开当前文件夹中的“f3.txt”文件 将结构体数组a中的数据写入“f3.txt”文件 关闭文件 ,char cn10; char en10;,既清晰又易读取,操作步骤,#include #include struct list 定义存放中文单词的成员 定义存放英文单词的成员 ; main() 定义名为list的结构体类型数组a并初始化 定义循环变量i 定义文件指针fp 打开当前文件夹中的“f3.txt”文件 将结构体数组a中的数据写入“f3.txt”文件 关闭文件 ,main() struct list a5= “中国“,“China“,“女孩“, “girl“,“男

7、孩“,“boy“,“人“,“man“, “一“,“one“; int i; FILE *fp; fp=fopen(“f3.txt“,“w“); if(fp=NULL) printf(“Can not open the file.n“); exit(0); for(i=0; i5; i+) fprintf(fp,“%15s%15sn“, ,ai.en); fclose(fp); ,相对路径,最好提供宽度,【实例6-4】编写程序,向已有的英汉对照表(实例6-3中建立的文件“f3.txt”)最后,添加新的单词。,P197,操作步骤,#include struct list 定义存放中文单词的成员 定

8、义存放英文单词的成员 ; main() 定义名为list的结构体类型变量w 定义文件指针fp 打开当前文件夹中的“f3.txt”文件 输入要添加的单词 将添加的单词写入“f3.txt”文件 关闭文件 ,char cn10; char en10;,struct list w; FILE *fp;,gets();,gets(w.en);,fprintf(fp,“%15s%15sn“,,w.en);,fp=fopen(“f3.txt“,“a“); if(fp=NULL) ,fclose(fp);,打开文件的一般形式: 文件指针名=fopen(“文件名“,“打开方式“);,归纳分析,判断文件打开是否成

9、功: if(文件指针名=NULL) printf(“Can not open the file.n“); exit(0); ,归纳分析,关闭文件的一般形式: fclose(文件指针);,fprintf函数的一般形式: fprintf(文件指针名,“一串字符“); 或 fprintf(文件指针名,“格式控制字符串“, 输出项表);,归纳分析,编写程序,从键盘输入3个学生的信息(包括学号,姓名,性别,成绩),并存入d盘c文件夹中的“stu.txt”文件中。,P200,编写程序,向练习6-1中已建立的“stu.txt”文件中添加2个新的学生信息,信息从键盘输入。,6-2,6.3.2从已有的文本文件中

10、读数据,P200,在日常生活中经常需要访问已有文件中的数据做相应处理,如分析测量数据、统计学生成绩等。在C语言中可以用fscanf函数从文本文件中读取数据。,问题的提出,【实例6-5】编写程序,从实例6-2建立的文件“f2.txt”中读取所有题目和答案,并显示在屏幕上。,任务与分析,6.3.2从已有的文本文件中读数据,P200,操作步骤,#include #include main() 定义整型变量a、b、c、k和i 定义文件指针fp 打开d盘c文件夹中的“f2.txt”文件 从“f2.txt”文件中读取题目和答案 将题目和答案显示在屏幕上 关闭文件 ,int a,b,c,k,i; FILE

11、*fp;,if(fp=NULL) ,fp=fopen(“d:cf2.txt“,“r“);,for(i=1; i=3; i+) fscanf(fp,“(%d) %d+%d=%dn“, ,fclose(fp);,【实例6-6】编写程序,从实例6-3建立的文件“f3.txt”中读取所有内容,并显示在屏幕上。,P201,操作步骤,#include #include struct list 定义存放中文单词的成员 定义存放英文单词的成员 ;,char cn10; char en10;,操作步骤,main() 定义循环变量i 定义名为list的结构体类型变量w 定义文件指针fp 打开d盘c文件夹中的“f3

12、.txt”文件 从“f3.txt”文件中读取单词 将单词显示在屏幕上 关闭文件 ,int i; struct list w; FILE *fp;,if(fp=NULL) ,fp=fopen(“d:cf3.txt“,“r“);,for(i=1; i=5; i+) fscanf(fp,“%15s%15sn“, ,w.en); printf(“%15s%15sn“, ,w.en); ,fclose(fp);,对于长度不定的文件 while(feof(fp)=0),【实例6-7】编写程序,输入英文或中文单词,根据英汉对照表文件“f3.txt”,在屏幕上显示对应的单词。,P203,操作步骤,#inclu

13、de #include #include struct list 定义存放中文单词的成员 定义存放英文单词的成员 ;,char cn10; char en10;,操作步骤,main() 定义名为list的结构体类型变量w 定义文件指针fp 定义标志变量s.flag 定义字符串变量str 打开d盘c文件夹中的“f3.txt”文件,struct list w; FILE *fp; int s,flag=0; char str20;,fp=fopen(“d:cf3.txt“,“r“); if(fp=NULL) printf(“Can not open the file.n“); exit(0); ,

14、操作步骤,选择是英汉还是汉英? 输入待查找的单词,printf(“请选择:n英汉-1n汉英-2n“); scanf(“%d“, ,操作步骤,在“f3.txt”文件中查找对应单词 输出查找结果,while(feof(fp)=0) fscanf(fp,“%15s%15sn“,,w.en); if(s=1 ,操作步骤,关闭文件 ,fclose(fp); ,【实例6-8】用Windows中的记事本建立2个文件“f4.txt”和“f5.txt”,并编写程序,将文件“f5.txt”中的数据合并到“f4.txt”文件中。,P205,操作步骤,用记事本在d盘c文件夹下建立文件“f4.txt”和“f5.txt”

15、,文件中存放汉英对照表。,操作步骤,#include #include struct list 定义存放中文单词的成员 定义存放英文单词的成员 ;,char cn10; char en10;,操作步骤,main() 定义名为list的结构体类型变量w 定义文件指针fp1,fp2 打开d盘c文件夹中的“f4.txt”文件 打开d盘c文件夹中的“f5.txt”文件,struct list w; FILE *fp1,*fp2; fp1=fopen(“d:cf4.txt“,“a“); if(fp1=NULL) printf(“Can not open the file.n“); exit(0); fp2=fopen(“d:cf5.txt“,“r“); if(fp2=NULL) printf(“Can not open the file.n“); exit(0); ,操作步骤,从“f5.txt”文件中读取数据 将数据追加到“f4.txt”文件 关闭两个文件 ,while(feof(fp2)=0) fscanf(fp2,“%10s%15sn“,,w.en); fprintf(fp1,“%10s%15sn“,,w.en); fclose(fp1); fcl

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

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号