




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 C C语言文件的概念语言文件的概念 文件指针文件指针 文件的打开与封闭文件的打开与封闭 文件的读写函数文件的读写函数 文件的定位文件的定位第十二章第十二章 文件文件文本文件文本文件:采纳采纳ACSII代码存储方式代码存储方式,每个字符占一个字节每个字符占一个字节,存储其对应的存储其对应的ASCII码码.二进制文件二进制文件:采纳采纳C规定的内存信息的存储方式规定的内存信息的存储方式,似似:整数整数10000,在内存中占在内存中占2个字节个字节,如果按二进制形如果按二进制形式存储式存储,在磁盘上也占在磁盘上也占2个字节个字节.00100111 00010000一、一、C C语言文件语言文件文件
2、文件存储在外部介质(似磁盘)上的信息的集合存储在外部介质(似磁盘)上的信息的集合.如果按文件内容分割如果按文件内容分割:源程序文件、信息文件源程序文件、信息文件如果按组织形式分割如果按组织形式分割:文本文件和二进制文件文本文件和二进制文件 对每个正在使用的文件对每个正在使用的文件, C系统都在内存中为其开发系统都在内存中为其开发了一个缓冲存储区了一个缓冲存储区.用来存放文件的信息用来存放文件的信息.特点特点:文件中存放的根基上信息文件中存放的根基上信息,这些信息能够恒久这些信息能够恒久保留保留,能够随时存取能够随时存取. 信息文件信息文件 文件的根基操纵文件的根基操纵“写写”文件文件: :将信
3、息从内存输出到磁盘文件将信息从内存输出到磁盘文件“读读”文件文件: :从已创站的信息文件中将所要的从已创站的信息文件中将所要的信息输入到内存信息输入到内存 二、文件指针二、文件指针在缓冲文件系统中在缓冲文件系统中,文件的信息保留在一个名为文件的信息保留在一个名为FILE的的结构体类型的变量中结构体类型的变量中.该结构体类型由系统定义该结构体类型由系统定义.定义文件型指针变量定义文件型指针变量:FILE * 指针变量名指针变量名似似: FILE * fp;fp是一个指向是一个指向FILE类型结构体的指针变量类型结构体的指针变量.C规定了三个规格设备文件指针规定了三个规格设备文件指针,无需再定义无
4、需再定义. stdin: 指向规格输入文件(键盘)指向规格输入文件(键盘) stdout:指向规格输出文件(表现器)指向规格输出文件(表现器) stderr:指向规格错误输出文件(表现器)指向规格错误输出文件(表现器)三、打开、封闭和探测文件三、打开、封闭和探测文件1、打开文件(、打开文件(fopen 函数)函数)FILE *fp;fp=fopen(文件名文件名,文件的使用方式文件的使用方式)fopen函数是一个返回指针值的函数函数是一个返回指针值的函数.当返回值是当返回值是NULL时时,示意无法打开该文件示意无法打开该文件常采纳下列方式打开一个文件常采纳下列方式打开一个文件:if (fp=f
5、open(”file1”,”r”)=NULL) printf(”cant open this file n”); exit(0); * 封闭文件函数封闭文件函数 * 表12.1 文件的使用方式使使用用方方式式含含义义功功能能r r只只读读为输入打开为输入打开一个文本文一个文本文件件w w只只写写为输出打开为输出打开一个文本文一个文本文件件a a追追加加在文本文件在文本文件的末尾追加的末尾追加信息信息r rb b只只读读为输入打开为输入打开一个二进制一个二进制文件文件w wb b只只写写为输出打开为输出打开一个二进制一个二进制文件文件l1、探测文件是否结束函数(、探测文件是否结束函数(feof(
6、)函数)函数)l标准标准:feof(fp)l功能功能:用来检验用来检验fp所指向的文件当前状态是否所指向的文件当前状态是否“文件结束文件结束”.似果是文件结束似果是文件结束,函数函数feof(fp)的值的值为非为非0值值(真真),否那么为否那么为0(假假).l2、探测错误函数(、探测错误函数(ferror()函数)函数)l标准标准: ferror(fp)l功能功能:探测对文件履行操纵时是否产生了错误探测对文件履行操纵时是否产生了错误,返返回值为回值为0,示意未犯错示意未犯错,非非0值值,示意犯错示意犯错.2、封闭文件(、封闭文件(fclose函数)函数)fclose(文件指针文件指针)l3、排
7、除错误标记和文件结束标记函数、排除错误标记和文件结束标记函数(clearerr()函数)函数)l标准标准: clearerr(fp)l功能功能:排除文件犯错标记和结束标记排除文件犯错标记和结束标记,使他们的使他们的值为值为0.四、文件的输入、输出四、文件的输入、输出1、fputc函数和函数和fgetc函数函数(1)fputc函数函数:把一个字符写到磁盘上把一个字符写到磁盘上.fputc(ch,fp);ch:为待输出的字符为待输出的字符fputc函数的返回值函数的返回值:当输出顺遂时为当输出顺遂时为ch的值的值 当输出不顺遂时为当输出不顺遂时为EOF即即-1.(2)fgetc函数函数:从指定文件
8、中读入一个字符从指定文件中读入一个字符.ch=fgetc(fp);2、fputs 函数和函数和 fgets 函数函数(1)fputs函数函数:把一个字符串写到磁盘文把一个字符串写到磁盘文件上件上.fputs(str, fp); str:为待输出的字符串为待输出的字符串,能够是字符串常量、指能够是字符串常量、指向字符串的指针变量或存放字符串的字符向字符串的指针变量或存放字符串的字符数组名数组名fputs函数的返回值函数的返回值:当输出顺遂时为正整数当输出顺遂时为正整数 当输出不顺遂时为当输出不顺遂时为EOF即即-1.(2)fgets函数函数:从指定文件中读入从指定文件中读入n-1个字个字符符fg
9、ets(str, n, fp); str: 存放字符串的首地址存放字符串的首地址n:字符串的长度字符串的长度功能功能:从文件中读入从文件中读入n-1个字符放入个字符放入str中中注重注重:似果在未读满似果在未读满n-1个字符时个字符时,已读到已读到一个换行符或一个一个换行符或一个EOF,那么结束本次操那么结束本次操纵纵,读入结束后系统自动参加读入结束后系统自动参加0.3、fprintf、fscanf函数函数:读写文本文件读写文本文件fscanf(文件指针文件指针,标准字符串标准字符串,输入表列输入表列);fprintf(文件指针文件指针,标准字符串标准字符串,输出表列输出表列);似似: int
10、 a3; fscanf( fp, ”%d%d%d,&a0,&a1,&a2); fprintf( fp, ”%d,%d,%d”,a0,a1,a2);例例:一元二次方程的根一元二次方程的根#include stdio.h#include math.hmain() FILE *fp; float a,b,c,x1,x2; fp=fopen( file.dat, w ); scanf (%f%f%f,&a,&b,&c); x1=(-b+sqrt(b*b-4*a*c)(2*a); x2=(-b-sqrt(b*b-4*a*c)(2*a); fprintf(f
11、p,x1=%8.2fn x2=%8.2fn,x1,x2);4、fread、fwrite函数函数:读写二进制文件读写二进制文件fread(buffer,size,count,fp););fwrite(buffer,size,count,fp););其中其中:buffer:读入或输出信息的指针读入或输出信息的指针 size :一次读写的字节数一次读写的字节数 count :大小为大小为size个字节的信息项的个数个字节的信息项的个数 fp :文件指针文件指针似似: int a3; fread(a,sizeof(int),3,fin);); fwrite(a,sizeof(int),3,fp););
12、五、五、 文件的定位文件的定位 文件中有一个位置指针文件中有一个位置指针, ,指向当前读写的指向当前读写的位置位置. . 次序读写次序读写: :每次读写一个字符后每次读写一个字符后, ,位置指位置指针自动移动指向下一个字符针自动移动指向下一个字符. .随机读写随机读写:是指读写完上一个字符是指读写完上一个字符(字节字节)后后,同同时不必然要读写其后续的字符时不必然要读写其后续的字符(字节字节),而能够而能够读写文件中随意率性所需的字符读写文件中随意率性所需的字符(字节字节).(1)rewind函数函数 作用是使位置指针再一次返回文件的开头作用是使位置指针再一次返回文件的开头.此函数没有返回值此
13、函数没有返回值. 例似例似:rewind(fp);(2)fseek函数函数 fseek(文件类型指针文件类型指针,位移量位移量,起始点起始点) 起始点起始点: 用用0、1或或2代替代替,0代表代表“文件最文件最先先”,1为为“当前位置当前位置”,2为为“文件末尾文件末尾”. 位移量位移量: 指以指以“起始点起始点”为基点为基点,向前移动向前移动的字节数的字节数. 大多数大多数C版本要求位移量是版本要求位移量是long型信息型信息. 例似例似: fseek(fp,100L,0); 将位置指针移到离文件头将位置指针移到离文件头100个字节处个字节处 fseek(fp,50L,1); 将位置指针移到离当前位置将位置指针移到离当前位置50个字节处个字节处 fseek(fp,-10L,2); 将位置指针从文件末尾处向后退将位置指针从文件末尾处向后退10个字节个字节 (3) ftell函数函数 fte
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024感知设备网络控制器设备规范
- 税务规划与个人节税策略计划
- 学校安全演练工作总结计划
- 高效英语学习法让口语技巧迅速提升
- 跨境教育市场分析与发展策略探讨
- 财务管理软件的安全性与数据保护策略
- 初中语文名著《朝花夕拾》《昆虫记》读书笔记16篇
- 贵金属产业教育体系与创新人才培养
- 超声科常见疾病的误诊原因及避免策略
- 四川2025年01月四川省石棉县2025年公开考调9名公务员笔试历年典型考题(历年真题考点)解题思路附带答案详解
- 2025年服装制版师(中级)职业技能鉴定考试题(附答案)
- 高考模拟作文“中国游”“city不city”导写及范文
- 福建省福州市2024-2025学年九年级上学期期末语文试题(解析版)
- 一年级下册综合实践活动教案2
- 九年级主题班会课件:遇见最好的自己(开学第一课)
- 2025版股权投资基金股份收购与退出机制协议3篇
- 【营销方案】2025小红书平台营销通案
- 2025年枣庄科技职业学院高职单招语文2018-2024历年参考题库频考点含答案解析
- 护苗行动安全教育课件
- 2024年山西同文职业技术学院高职单招职业适应性测试历年参考题库含答案解析
- 油品库房管理规定(2篇)
评论
0/150
提交评论