版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第十一章文件,C语言程序设计,第十一章 文件,本章主要内容: 11.1 概述 11.2 内部文件和外部文件 11.3 文件的打开与关闭 11.4 文件的读写 11.5 文件的定位 本章重点: 文件的基本操作:打开、关闭、读、写。,C语言程序设计,11.1 概述,文件是指在计算机中存储在外部存储设备上数据的集合。 由于一般的应用程序都会涉及大量的数据,所以都会使用到对文件的操作。 编写程序的目的是希望得到程序的运行结果。如果希望把这些结果保存起来或将其提供给其它程序来使用,也要使用文件。,C语言程序设计,C语言使用的文件是“流”式文件。在内存与外部存储器之间,数据的传递形式有两种,对应的文件也有
2、两种: 字符流字符(文本)文件 一个字符一个字符地传输,称之为字符流。 字符流所对应的文件,称为字符文件(也称文本文件、正文文件)。即这种文件的传输与存储都是以字符(字节)为单位进行的。 优点:易读、易改、易建立,用常用的字处理器(如记事本、写字板、WORD等)都可建立或修改。 缺点:处理速度比较慢:需要将其它类型的数据转换为字符。,数组,C语言程序设计,二进制流二进制文件 数据以内存存储的方式进行传输和存储。 优点:由于没有数据的转换问题,所以其处理速度比较快。 缺点:二进制文件几乎是无法阅读和修改。 可执行文件及系统文件(扩展名为.exe、.com、 .dll、.obj等)都是二进制文件。
3、,数组,C语言程序设计,操作系统对文件的管理,在进行内存与文件之间的数据交换时,又分为直接交换和间接交换方式: 直接把内存的数据保存到文件(写文件),或将文件中的数据读入到内存(读文件)的文件管理系统,称非缓冲(低层)文件系统。 写文件和读文件要经过缓冲区间接地进行交换的文件管理系统,称缓冲(高层)文件系统。,数组,非缓冲文件系统,缓冲文件系统,提高CUP的利用率,C语言程序设计,外部文件:是指存储在外存上的实际文件,以文件名来表示它。操作系统就是以“按名存取”方式来对文件施加各种操作。 内部文件:是指程序中处理文件的变量,也称文件句柄。在C中是通过说明文件类型的指针(简称文件指针)来建立。
4、文件指针一般说明格式为: FILE *文件指针; 如:FILE *fp; 有了文件指针,以后只要把fp与外部文件建立好联系,就可以通过它来使用实际的文件了。,11.2 内部文件和外部,C语言程序设计,文件的打开 在使用文件之前,要事先建立好内部文件(文件指针)与外部文件的联系,这是通过打开文件来实现的。 文件打开的一般格式为: fp=fopen(文件名,打开方式); 如:FILE *f1,*f2,*f3; f1=fopen(“a:testt1.txt”,”r”); f2=fopen(“data.txt”,”w+”); f3=fopen(“student.dat”,”ab”);,11.3 文件的
5、打开与关闭,打开方式: r以只读方式打开 w以只写方式打开 a以添加方式打开 附加字符: b用在r、w、a方式后面,打开的是二进 制文件。 +用在打开方式最后。是指打开的文件既 可以读,又可以写。,C语言程序设计,如果不能正确打开一个文件,该函数返回空指针(NULL)。所以,该函数的典型用法为: if(fp=fopen(“a:testt1.txt”,”r”)=NULL) printf(“文件打不开n”); exit(1); /* 打开成功,则处理文件 */,C语言程序设计,文件的关闭 在文件使用完毕之后,应及时关闭它。C中使用fclose函数来关闭文件,其一般格式为: fclose(文件指针)
6、; 如:fclose(fp); 关闭文件的作用: 刷新缓冲区,即将缓冲区中数据真正写入文件,以避免数据丢失。 切断内部文件与外部文件的联系,即将“管道”撤销,文件指针不再指向外部文件了。 在文件尾部写入文件结束标志。,C语言程序设计,读写单个字符 向文件写字符 将一个字符写到磁盘文件中。 其函数的一般调用形式为: fputc(字符表达式,文件指针); 例11.1 将键盘输入的一行字符存入d盘的myfile1.txt文件中。,11.4 文件的读写,C语言程序设计,从文件中读字符 从指定的文件中读入一个字符。 其一般的调用形式为: 字符型变量=fgetc(文件指针); 如:ch=fgetc(fp)
7、; 如果遇到了文件结束,该函数返回文件结束标志EOF(即-1)。 对于二进制文件,判断文件是否结束,应使用feof(fp)函数完成。该函数的值为真(1)时文件结束,为假(0) 文件未结束 。 例11.2 读文本文件 例11.3 读写二进制文件,C语言程序设计,读写字符串 向文件中写入字符串 函数的一般调用形式: fputs(字符串,文件指针); 与puts不同,fputs函数不输出n。 fputs函数调用成功时,返回最后写入的字符,否则返回EOF。 例11.4 将一批字符串写入文件,C语言程序设计,从文件中读入字符串 函数的一般调用形式为: fgets(字符串变量,读入字符数,文件指针); 如
8、:fgets(var_str,n,fp); 把从fp文件中读入的字符串存入var_str中:当读入了n-1个字符或遇到换行符、文件结束符时,函数停止读入(fgets函数将换行符当做普通字符读入并存于字符串变量中),并在最后自动填入0字符。 fgets函数调用成功时,返回var_str的值;在出错或遇到文件结束时,返回NULL。 例11.5 从文本文件中读入多行字符串。,C语言程序设计,文件的格式化读写 文件格式化读写函数的一般调用格式为: fscanf(文件指针,格式字符串,输入项表); fprintf(文件指针,格式字符串,输出项表); 这两个函数返回实际读写数据的个数,若无任何数据被读写,返回0。如: while(fscanf(fp,%d%d%d, fwrite(块地址,块尺寸,块数,文件指针); 如:float score40; struct STUDENT stu; fr
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 26949.10-2026工业车辆稳定性验证第10部分:在由动力装置侧移载荷条件下堆垛作业的附加稳定性试验
- 经理的述职报告范文(32篇)
- 2026北师大二下东南西北原创课件
- 部编版小学三年级上册语文 语文园地六 教案
- 人教版四年级数学上册 导学案 第五单元 平行四边形和梯形
- 新苏教版科学五年级上册 3.10《摩擦力》教学设计
- Unit 1 Friendship Section 1 Experiencing and understanding language Reading 教学设计2026-2027学年沪教版英语七年级上册
- 2026四下数学第五单元备课课件
- 重卡电驱桥:电动重卡放量驱动全球核心动力系统进入规模化增长周期
- 高Tg型覆铜板市场扩容提速
- 2026年秋季学期每周国旗下讲话稿
- 医务人员参与学术讲课取酬的合规管理专家共识解读总结2026
- 《高等数学(第2版)》 高职 全套教学课件
- 2024年警辅人员招聘考试题库及答案
- DL-T620-1997交流电气装置的过电压保护和绝缘配合
- 幼儿园每月食品安全调度会议纪要
- 大型医院巡查工作汇报材料
- 智能家居设备安装与调试高职全套教学课件
- 非自行指示秤检定员试卷
- 工资条(标准模版)
- 新编建筑施工扣件式钢管脚手架安全技术规范
评论
0/150
提交评论