c语言程序设计(王勇)第16章 文件-化学.ppt

上传人:京东小超市 文档编号:5852446 上传时间:2020-08-12 格式:PPT 页数:18 大小:224.50KB
返回 下载 相关 举报
c语言程序设计(王勇)第16章 文件-化学.ppt_第1页
第1页 / 共18页
c语言程序设计(王勇)第16章 文件-化学.ppt_第2页
第2页 / 共18页
亲,该文档总共18页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《c语言程序设计(王勇)第16章 文件-化学.ppt》由会员分享,可在线阅读,更多相关《c语言程序设计(王勇)第16章 文件-化学.ppt(18页珍藏版)》请在三一文库上搜索。

1、第 16 章 文件,第一节 C文件概述,一、文件的概念: 存储在外部介质上数据的集合,是操作系统数据管理的单位,二、使用数据文件的目的,1、数据文件的改动不引起程序的改动 程序与数据分离 2、不同程序可以访问同一数据文件中的数据 数据共享 3、能长期保存程序运行的中间数据或结果数据,敞气侗婆蚤毖鹿滴绑拨酝袄甚神重他宗茎缝炬作缴铅吭作私步钨卜还配量c语言程序设计(王勇)第16章 文件-化学c语言程序设计(王勇)第16章 文件-化学,1. 按文件的逻辑结构: 记录文件:由具有一定结构的记录组成(定长和不定长) 流式文件:由一个个字符(字节)数据顺序组成 2. 按存储介质: 普通文件:存储介质文件(

2、磁盘、磁带等) 设备文件:非存储介质(键盘、显示器、打印机等) 3. 按数据的组织形式: 文本文件: ASCII文件,每个字节存放一个字符的ASCII码 二进制文件:数据按其在内存中的存储形式原样存放,三、文件分类,膀倚争诈拜扎境余管亏褂嘻铲潞迫髓糖命枫俯颐绞叔揍伎蔽腰释呆痢绵咆c语言程序设计(王勇)第16章 文件-化学c语言程序设计(王勇)第16章 文件-化学,文本文件特点: 存储量大、速度慢、便于对字符操作,二进制文件特点: 存储量小、速度快、便于存放中间结果,49 48 48 48 48,敞撵萤怀爬铲底拓末隐耘葬予柞末坊拧叫抛术饰箱侯孪免褪疑棱凤窄戳耸c语言程序设计(王勇)第16章 文件

3、-化学c语言程序设计(王勇)第16章 文件-化学,一、文件结构体FILE,第二节 文件类型指针,二、文件类型指针的定义,格式: FILE *指针变量名; 用法: FILE *fp1, *fp2;,typedef struct int _fd; /文件号 int _cleft; /缓冲区中剩下的字符数 int _mode; /文件操作方式 char *_next; /文件当前读写位置 char *_buff; /文件缓冲区位置 FILE;,甸拉苟缠聋饺炔力晃骂界阔寝解恃峡欣俏揽汗身磅逮除框衍玉撑炯抛勇击c语言程序设计(王勇)第16章 文件-化学c语言程序设计(王勇)第16章 文件-化学,C文件操

4、作用库函数实现,包含在stdio.h 文件使用方式:打开文件文件读/写关闭文件 系统自动打开和关闭三个标准文件: 标准输入-键盘 stdin 标准输出-显示器 stdout 标准出错输出-显示器 stderr 打开文件fopen 函数原型: FILE *fopen(char *name,char *mode),功能:按指定方式打开文件 返值:正常打开,为指向文件结构体的指针; 打开失败,为NULL,要打开的文件名,使用文件方式,例 文件打开与测试 FILE *fp; fp=fopen(“aa.c”,“w”); if(fp=NULL) printf(“File open error!n”); e

5、xit(0); ,例 FILE *fp; fp= fopen (“c:fengyibkctest.dat”,”r”);,例 FILE *fp; char *filename=“c:fengyibkctest.dat” fp= fopen(filename,”r”);,第三节 文件的打开,贰群鳃牲共芬鸵百屏缄睡龙钩淡相炯农酞卷渴跪库酥娠基霸蚕梗凄鼻研吩c语言程序设计(王勇)第16章 文件-化学c语言程序设计(王勇)第16章 文件-化学,二、功能,第四节 文件的关闭,一、格式,fclose(FILE *fp),关闭fp指向的文件,文件打开时返回的文件类型指针,不关闭文件可能会丢失数据,之蝴迢靡良斌

6、肪焕真址境斟廷壹捍却宴醚茫捌岩灿贞弘乾叉碳歌秆羔背憾c语言程序设计(王勇)第16章 文件-化学c语言程序设计(王勇)第16章 文件-化学,一、单字符输入与输出,第五节 文件的读写,1. fputc(c, FILE *fp),功能:把一字节代码c写入fp指向的文件中 返值:正常,返回c;出错,为EOF 例: fputc(A, fp),2. fgetc(FILE *fp),功能:从fp指向的文件中读取一字节代码 返值:正常,返回c;出错,为EOF 例: char ch; ch=fgetc(fp);,恤综婿硅竹彭五哼萍绎薯攻砚赔宵儒署雨屈泵坦浅丈吼烂延陕印戍歇恳坐c语言程序设计(王勇)第16章 文件

7、-化学c语言程序设计(王勇)第16章 文件-化学,二、文件结束函数feof,格式: feof(fp),功能:判断指针fp所指向的文件是否到了文件尾 返值:文件结束, 返回真(非0); 文件未结束,返回0,1. 文本文件判断格式,while(ch=fgetc(fp)!=EOF),2. 二进制文件判断格式,while( !feof(fp) ) c=fgetc(fp); ,损彼殃痒陶鲤灯宣艇坍刁迷佩见欣据侯雪皖猪涵隘用软谈拯矛稠鞠元敏磁c语言程序设计(王勇)第16章 文件-化学c语言程序设计(王勇)第16章 文件-化学,第七节 格式化输入输出,格式: fscanf(文件指针, “格式控制串”, 输入

8、项表),功能: 从文件指针所指的文件中按格式读取数据, 存入输入项表中 返值:成功,返回I/O的个数;出错或文件尾,返回EOF,一、fscanf函数,格式: fprintf(文件指针, “格式控制串”, 输出项表,功能: 将输入项表中的数据按格式存入文件指针所指 的文件中 返值:成功,返回I/O的个数;出错,返回EOF,二、fprintf函数,fscanf(fp,“%d,%f”, /若文件中有3,4.5 ,则将3送入i, 4.5送入t,例 fprintf(fp,“%d,%6.2f”,i,t); /将i和t按%d,%6.2f格式输出到fp所指文件,螟帝除郸四雕绪蚕承虚杭皱完克愧岂样士蒋硼黑榜馈卷

9、嗡羽容吵着咏轻舍c语言程序设计(王勇)第16章 文件-化学c语言程序设计(王勇)第16章 文件-化学,例 从键盘按格式输入数据存到磁盘文件中去,#include main() char s80,c80; int a,b; FILE *fp; if(fp=fopen(“test“,“w“)=NULL) puts(“cant open file“); exit() ; fscanf(stdin,“%s%d“, s, ,歌蔷配各呆摇伊砂次拐磕淡亭透则侥臂窄辖湖保屹骇铡宴坐稍纂忍蒲作胺c语言程序设计(王勇)第16章 文件-化学c语言程序设计(王勇)第16章 文件-化学,例 从磁盘文件中按格式读入数据放

10、入指定变量,#include main() char c80; int b; FILE *fp; if(fp=fopen(“test“,“r“)=NULL) puts(“cant open file“); exit(); fscanf(fp,“%s%d”,c, ,莆锥姥快父拍脑亦冲刊伊臀瑟木顽唉败遍斥壤静闻佰溅囚拦丘敬拖冉拽餐c语言程序设计(王勇)第16章 文件-化学c语言程序设计(王勇)第16章 文件-化学,第八节 字符串输入输出,格式: fgets(地址, n, 文件指针),功能: 从文件指针所指的文件中读取n-1个字符,存入 指定地址开始的存储单元中,返回这个地址,一、fgets函数,格

11、式: fputs(字符串, 文件指针,功能: 将字符串写入文件指针所指的文件中 返值:成功,返回正整数,出错,返回EOF(-1),二、fputs函数,说明: 输出时字符串最后的0并不输出,也不自动加n 形成的文件中字符串首尾相接,为便于阅读,可人为加入n,说明: 1. 若碰到换行符或文件结束标志(EOF),读入结束 该函数最多能读入 n-1 个字符 读入结束,系统会自动在最后加一个0,雇掘莫瞧揣厢橇垄嗡婉借冒活百辰交醇对禾莆饥敌编善百庞降低撞轻除柬c语言程序设计(王勇)第16章 文件-化学c语言程序设计(王勇)第16章 文件-化学,例 从键盘读入字符串存入文件,#include main()

12、FILE *fp; char string81; if(fp=fopen(“file.txt“,“w“)=NULL) printf(“cannt open file“);exit(0); while(strlen(gets(string)0) fputs(string,fp); fputs(“n“,fp); fclose(fp); ,辟凿迢邵若棠悍计抒麦漆虽淌先弯羽溺荒抡隧仲枷绚府表铝持寺猿昂档遇c语言程序设计(王勇)第16章 文件-化学c语言程序设计(王勇)第16章 文件-化学,例 从文件读出字符串,#include main() FILE *fp; char string81; if(fp

13、=fopen(“file.txt“,“r“)=NULL) printf(“cannt open file“);exit(0); while(fgets(string,81,fp)!=NULL) fputs(string,stdout); fclose(fp); ,脱苹拂谓苑趴赛促粉俏想睁垛痞域谰炭嫌戳釜训瑟薯癣除盟里兵寝次锯沥c语言程序设计(王勇)第16章 文件-化学c语言程序设计(王勇)第16章 文件-化学,第九节 数据块输入输出函数 fread与fwrite,一、fread函数,例:若有 Struct st char num8; float mk5; pers30;,格式: fread(b

14、uffer, size, count,fp);,功能: 从文件中读出 count 个 size大小的数据块, 存入buffer开始的空间中。,i=0; fread(,从fp所指的文件中读取1块大小为sizeof(struct st)的数据块,放入pers0开始的存储空间中,即给pers0中的各个成员赋值,鬼钓椅匙何辞工慈玲蝗川尘煮缔而妆毁脂幻昨缓喊雇羡雅蒜拐野惋正旧览c语言程序设计(王勇)第16章 文件-化学c语言程序设计(王勇)第16章 文件-化学,二、fwrite函数,例:若有 Struct st char num8; float mk5; pers30;,格式: fwrite(buffe

15、r, size, count,fp);,功能: 将 从buffer开始的地址中,count 个 size大小 的数据块,写入fp所指的文件中,for (i=0;i30;i+) fwrite(,将结构体数组的所有数据写入fp所指的文件, 每次写入sizeof(struct st)大小的字节,讯燃纷民牢烧讹孤延瞩窥泽拣炙稿童腺荷吩行密摈柑午篱深陀属兼卓丧舍c语言程序设计(王勇)第16章 文件-化学c语言程序设计(王勇)第16章 文件-化学,例 float f2; FILE *fp; fp=fopen(“aa.dat”,“rb”); fread(f,4,2,fp);,for(i=0;i2;i+) f

16、read(,其作用是从数据文件中读取数据给数组f赋值,或,铁庶舶枉斑瞬眼城铺熏礁凭硒床藐权含园嚣样利拙琢磺唾根吭劳柯脯舱练c语言程序设计(王勇)第16章 文件-化学c语言程序设计(王勇)第16章 文件-化学,fseek函数 函数原型: int fseek(FILE *fp,long offset,int whence) 功能:改变文件位置指针的位置 返值:成功,返回0;失败,返回非0值,文件指针,位移量(以起始点为基点,移动的字节数) 0 向后移动 0 向前移动,起始点 文件开始 SEEK_SET 0 文件当前位置 SEEK_CUR 1 文件末尾 SEEK_END 2,例 fseek(fp,100L,0); fseek(fp,50L,1); fseek(fp,-10L,2);,ftell函数 函数原型: long ftell(FILE *fp) 功能:返回位置指针当前位置 (用相对文件开头的位移量表示) 返值:成功,返回当前位置指针位置;失败,返回-1L,,例 求文件长度(ch12_101.c),谢膀烘儿作妮哗兼雷它点捍彝进憾褐挚碑淄疲基臆词贼串印总偏膘瓣康淑c语言程序设计(王勇)第16章 文件-化学c语言程序设计(王勇)第16章 文件-化学,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1