版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、全国计算机等级考试2C课程,第12课文件,2020/7/15,作者:张旭川版权所有欢迎盗版,2,文件概述,文件的基本概念文件是存储在外部媒体上的数据集合,是操作系统管理数据的单位。实际上,上一章多次使用源文件、目标文件、可执行文件和库文件(头文件)等文件。文件使用的目的是实现程序和数据分离。文件的变更不会引起程式的变更。数据孔刘。徐璐其他程序可以访问同一文件中的数据。保存数据。可以使用文件作为长期存档程序运行的中间数据或结果。2020/7/15,作者:张旭川版权所有欢迎盗版,3,文件分类,数据组织格式:文本文件:即ASCII文件,每字节一个字符的ASCII代码。例如,数字5678总共占用4个字
2、节,可以将ASCII代码:001101 00110110 0011011001100010十进制代码:5 6 7 8 ASCII代码文件显示为屏幕上的字符。源程序文件是使用DOS命令TYPE的ASCII文件。例如,数字5678仅占用两个字节,00010110 0010110二进制文件可以显示在屏幕上,但不能读取其内容。2020/7/15,作者:张旭川版权所有欢迎盗版,4,文件类型指针,文件结构类型文件信息由系统定义的文件结构说明。FILE的定义是stdio.h(用于处理c文件的库函数都包含在stdio.h中)文件类型指针文件指针变量的描述方法(例如,FILE * fp用法:文件打开时,会自动设
3、置文件结构,并返回允许程序操作文件的指针(文件的第一个地址)。此指针关闭文件时,将自动关闭文件结构。2020/7/15,作者:张旭川版权所有欢迎盗版,5;Char *mode)功能:按照mode指定的方式打开name指定的文件返回值。正常打开并返回指向文件结构的指针。打开失败,返回值为NULL,2020/7/15,作者:张旭川版权所有欢迎盗版,6,文件打开函数:fopen,文件打开函数使用示例,文件打开和打开成功测试(如FILE * fpFp=fopen(aa.c,w);If (FP=null)打印(“文件打开错误!n);退出(0);使用文字指针打开文件并导入指针,例如FILE * fpcha
4、r * filename=c : fengyibkctest . dat FP=fopen(filename, r );以使用完整文件名打开文件并导入指针;例如,FILE * fpFP=fopen(c : fengyibkctest . dat,r);2020/7/15,作者:张旭川版权所有欢迎盗版,7,文件关闭功能:fclose,原型:int fclose(FILE *fp)功能:文件指针变量与文件“分离”示例:文件* FPFp=fopen(aa.c,w);If (FP=null)打印(“文件打开错误!n);退出(0);f close(FP);2020/7/15,作者:张旭川版权所有欢迎盗版
5、,8,文字读写函数fputc,fgetc和feof,文字I/O函数:fputc函数原型:IntFPUTC (INTC错误,EOF字符I/O函数:fgetc函数原型:int fgetc(FILE *fp)函数:从fp指向的文件中读取单字节代码返回值:通常,返回读取的代码值;测试EOF文件尾部的函数:feof函数原型:int feof(FILE *fp)函数:确定文件是否关闭返回值:文件终止,非零返回值;文件未结束。返回0,2020/7/15。作者:张旭川版权版权版权欢迎盗版,9,文字读写函数fputc,fgetc和feof,例程:复制文件,# Include # Includeme Char c
6、h,infile10,outfile10Scanf(infile name:%s,infile);scanf(outfile name 3360% s,outfile);If (in=fopen (infile,r)=null)printf(cannot open infile . n);退出(0);If (out=fopen (outfile,w)=null)打印(cannot open outfile . n);退出(0);While(!feof(in)fputc(fgetc(in),out);f close(in);f close(out);2020/7/15,作者:张旭川版权所有欢迎盗
7、版,10,格式读取和写入功能:fprintf和fscanf,函数原型:int fprintf (file * FP,constchar/I和t(格式为%d,%6.2f),如果FP文件fscanf (FP,“% d,% f”,/文件具有3,4.5),则将3作为I,4.5作为t,2020作为Int a,b;FILE * fpIf (FP=fopen (test,w)=null)puts(cant open file);exit();Fscanf(stdin,%s%d,s,2020/7/15,作者:张旭川版权所有欢迎盗版,12,小练习:1,下一步骤(2009年3月FFprintf(f,ABC);f
8、close(f);如果文本文件filea.txt最初包含名为hello的内容,则在运行上述程序后,filea.txt文件的内容为:a)hello ABC b)ABC lo c)ABCD)ABC hello,2020/7。Int a10=1,2,3,I,IFp=fopen (dl.dat , w );for(I=0);i3;I) fprintf (FP,“%d”,ai);Fprintf (FP,“n”);f close(FP);Fp=fopen (dl.dat , r );Fscanf (FP,“%d”,程序运行结果A)12300 B) 123 C) 1 D) 321,2020/7/15,作者:
9、张旭川版权所有欢迎盗版,14,File如果在读取N-1字符之前发生换行或文件结尾(EOF),则立即结束。Fputs将S指向的字符串写入FP指向的文件。返回值:返回fgets正常读取的字符串的第一个地址。错误或文件结尾,NULL fputs返回正常记录的最后一个字符。ef,2020/7/15,作者:张旭川版权所有欢迎盗版,15,字符串读/写函数fgets和fputs,示例从:键盘读取字符串,将其保存到文件中,然后从文件中重新读取,# include # include CharIf (FP=fopen (file.txt,w)=null)打印(cannt open file);退出(0);whi
10、le(strlen(gets(string)0)FP uts(string,FP);Fputs(n,FP);f close(FP);If (FP=fopen (file.txt,r)=null)打印(cannt open file);退出(0);While(fgets(string,81,fp)!=NULL) fputs(string,stdout);f close(FP);2020/7/15,作者:张旭川版权所有欢迎盗版,16,小练习:3,下一个程序(2010年3月)# include main()FILE * FP;Char str10Fp=fopen(myfile.dat,w);Fput
11、s(abc、FP);f close(FP);Fp=fopen(myfile.dat,a);Fprintf(fp、%d、28);rewind(FP);Fscanf(fp,%s,str):Puts(str);f close(FP);程序运行后输出为:A)abcB) 28cC) abc28D)类型不匹配导致的错误,2020/7/15,作者:张旭川版权所有盗版欢迎,17,块读写函数fread和fwrite,通用格式Fwrite表示Fwrite函数存储输出数据的第一个地址。Size表示数据块中的字节数。Count表示要读取和写入的块数(或计数)。Fp表示指向文件的指针。例如:fread(fa,4,5,F
12、P);每次从Fp指向的文件中读取4字节(一个实数)时,都会将其发送到实数数组fa,这意味着连续5次(5个实数)读取到fa中。2020/7/15,作者:张旭川版权所有欢迎盗版,18,小练习:4,下一步程序(2008年九月)# include main()FILE * pf;Char *s1=China,* s2=BeijingPf=fopen(abc.dat,WB);Fwrite(s2,7,1,pf);莱文(pf);Fwrite(s1,5,1,pf);f close(pf);执行以下过程后,abc.dat文件的内容将为:a)China b)China ng c)China Beijing d)B
13、eijing China,2020/7/15,作者:张旭川版权所有欢迎盗版,1其中文件指针已经例如,FILE * fpIf (FP=fopen (test,WB)=null)打印(cannot open file!);退出(0);/*读取和写入文件等操作*/rewind(FP);/*将文件位置指针移回文件顶部*/*读取和写入文件等操作*/,2020/7/15,作者:张旭川版权所有起始盗版,20,文件定位函数,fseek函数函数:将文件内部位置指针移动到指定位置。后续的读写操作将从此位置开始。调用采用fseek(文件指针、位移量、起点)格式。其中,“文件指针”是指被操作的文件。“位移量”表示移动
14、的字节数,long类型数据,如果显示为常量,则需要添加后缀“L”,以避免文件长度大于64KB时出错。如果位移量为整数,则向后移动。负数表示向前移动。起点表示计算位移量的位置,并指定三个起点:文件开始、当前位置和文件结束。2020/7/15,作者:张旭川版权所有欢迎盗版,21,文件定位函数,fseek函数位移起始点如下所示:起点表示SEEKEND 2,SEEKCUR 1文件的结尾,符号编号是文件中第一个SEEKSET 0的当前位置。例如:/将位置指针从文件的前100个字节移动到fseek(fp,50L,1)。/将位置指针从当前位置向后移动50字节(FP、-10L、2)。/将位置指针从文件末尾反向放置10个字节。注意:fseek函数通常用于二进制文件,计算的位置经常出错,因为您要在文本文件中转换它。,2020/7/15,作者:张旭川版权所有欢迎盗版,22,小练习:5,下一步骤# include main()FILE * FP;Int i,a6=1,2,3,4,5,6k;FP=fopen(“D3 . dat”
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2027年四川省甘孜藏族自治州高考物理全真模拟密押卷(含答案解析)
- 2026-2027学年湖南省常德市高三下学期第五次调研考试物理试题(含答案解析)
- 工厂设备升级专员2026年二季度设备升级改造总结
- 办公区域节电防暑安全常识课件
- 2026 年新学期:小学开学第一课珍爱生命健康成长
- 2026年秋季幼儿园开学第一课 新学期收心教育主题班会
- 1.1.1 多边形的内角 课件 2026-2027学年湘教版数学八年级下册
- 鼻胆管引流管护理查房
- 不育症中医针灸治疗学
- 腰间盘突出护理诊断查房
- 德语生物化学词汇表
- 2026放射工作人员考试题库(含答案)
- (2026年)检验检测机构资质认定“一单一库”的学习与解读(2026年实施)课件
- 核心素养导向的初中七年级英语单元整体教学设计:Once Upon a Time (基于人教版七年级下册Unit 8)
- 卫生院统计报工作制度
- 2025-2030声波治疗仪市场前景展望及未来经营优势可行性研究报告(-版)
- 2025至2030中国抗纤维化药物市场调研及战略规划报告
- 深度解析(2026)《YDT 6189-2024 面向电信运营商的用户数据标签管理技术要求》
- 无线电科普教学课件
- GB/T 7714-2025信息与文献参考文献著录规则
- 2025海南东方市招聘社区专职工作人员196人备考题库(第1号)附答案详解(典型题)
评论
0/150
提交评论