![C语言程序设计8-文件_第1页](http://file4.renrendoc.com/view/bf73a4e974bc425a0314b451683e0456/bf73a4e974bc425a0314b451683e04561.gif)
![C语言程序设计8-文件_第2页](http://file4.renrendoc.com/view/bf73a4e974bc425a0314b451683e0456/bf73a4e974bc425a0314b451683e04562.gif)
![C语言程序设计8-文件_第3页](http://file4.renrendoc.com/view/bf73a4e974bc425a0314b451683e0456/bf73a4e974bc425a0314b451683e04563.gif)
![C语言程序设计8-文件_第4页](http://file4.renrendoc.com/view/bf73a4e974bc425a0314b451683e0456/bf73a4e974bc425a0314b451683e04564.gif)
![C语言程序设计8-文件_第5页](http://file4.renrendoc.com/view/bf73a4e974bc425a0314b451683e0456/bf73a4e974bc425a0314b451683e04565.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、(五)复杂数据类型5.1 数组5.2 指针5.3 结构体5.4 文件第5.4章 文件1) 文件的概念2) 文件的操作3) 文件指针的定位第1节 文件的概念一、文件的定义 文件是相关信息的集合。为了区别不同的文件,给每个文件取不同的名字,称为文件名。 在实际的任务中总离不开文件操作,文件能够永久保存原始数据及运算的结果。学会文件的使用,对数据的获取与存储有极大的帮助。二、文件的分类 C语言的流式文件主要有两大类: 1、二进制文件:以二进制形式存放的文件,如:可执行文件EXE等。 2、ASCII文件或文本文件:以ASCII码形式存放的文件,可用“记事本”查看。 三、文件与CPU、磁盘之间的关系CP
2、U内存磁盘保存打开文件ACPU不能直接与磁盘交换信息,磁盘的信息只能通过内存(缓冲区)才能与CPU进行交换。第2节 文件的操作一、文件的打开操作 1、打开文件格式 fopen(文件名, 文件使用模式) 函数返回一个结构体FILE类型的文件指针,若打开文件成功,则返回值不为空指针NULL。 文件名可包括相应的盘符路径与具体文件名。 文件使用模式可以指明文件的类型和允许的文件操作方式,如读写等。r 打开文件,进行读取。若文件不存在,fopen()返回 NULL空指针,打开文件失败。w 打开文件,进行写入。若文件不存在,则创建它; 若文件存在,则删除它,并创建一个新的空文件。a 打开文件,追加内容。
3、若文件不存在,则创建它; 若文件存在,则将新数据追加到文件末尾。r+ 打开文件,进行读写。若文件不存在,则创建它; 若文件存在,则将新数据写到文件开头,覆盖原 来的数据。w+ 打开文件,进行读写。若文件不存在,则创建它; 若文件存在,则覆盖它。a+ 打开文件,进行读取和追加。若文件不存在,则创 建它;若文件存在,则将新数据追加到文件末尾。b 文件类型为二进制文件(默认为文本文件)。2、文件指针类型 FILE实际上是一个结构体类型,该结构体保存了与文件相关的信息,在stdio.h中具体定义。 注意:任何文件在读写之前,必须先打开。为确保打开文件成功,应检查文件指针是否是空指针。 例如: FILE
4、 *fp; if(fp=fopen(Test.txt, r)=NULL) printf(Error opening file!); exit(1); 上例以文本文件和读写方式打开文件,把FILE指针返回值赋值给fp,并检查是否打开成功。这里,打开文件是在磁盘与内存间建立数据交互的通道,为文件读和写操作作好准备。二、文件的关闭操作 关闭文件格式: fclose(文件指针变量) 例如: fclose(fp); 关闭fp所指向的已打开文件。这里,关闭文件是撤消磁盘与内存的联系通道。 注意:当文件操作完毕,应执行文件关闭操作。三、文件的读操作 从文件中读取数据,输入到内存(变量)中。 1、格式1(格式
5、化文件输入): fscanf(fp, 格式串, 输入项列表) 有点类似scanf的使用,但不是从键盘中获取数据,而是从fp指向的磁盘文件中取得相应格式的数据。 例如: fscanf(fp,%d,%d,%d,&a,&b,&c); 表示从文件fp中取得3个数据给a,b,c赋值。 2、格式2(字符串输入): fgets(str, n, fp) 从文件fp中读取一行字符串(遇到换行符或文件结束标志EOF或读取了n-1个字符结束)到str。 例如:char a40; fgets(a,40,fp);表示从fp中取出39个字符串,放在字符数组a中。 3、格式3(字符输入): fgetc(fp) 从文件中读取
6、一个字符,作为函数返回值。 例如:char ch; ch=fgetc(fp); 表示从fp中取出一个字符,赋值给字符ch。 4、格式4(二进制文件的输入) fread(buffer, size, n, fp) 从二进制文件fp中读取size*n个字节的数据块到buffer指向的内存中。buffer是void * 类型,是指向内存区域的指针,以存储从磁盘文件中读取的数据;size是long型,指定单个数据项字节长度,往往使用sizeof()运算符;n是long型,指定要读取的数据项数;fp是FILE *型文件指针。 注意:fread()函数返回成功读取的数据项数。若到文件尾或发生错误,返回值将小
7、于n。为检查错误,常用: if(fread(buffer, size, n, fp)!=n) printf(Error reading file! ); exit(1); 例如:int buf200; fread(buf,sizeof(int),10,fp);表示从文件fp中连续读取10个整数到内存数组buf中。四、文件的写操作 把内存的信息输出,写到磁盘文件中。 1、格式1(格式化文件输出): fprintf(fp,格式串,输出项列表) 用法与printf类似,唯一不同是把数据保存到磁盘文件fp中,而不是输出到屏幕。例如: int a=10,b=20,c=30; fprintf(fp,%d,
8、%d,%dn,a,b,c);表示变量a,b,c的值被保存到了文件fp中。 2、格式2(字符串输出): fputs(str,fp) 把字符串str保存到文件fp中。例如: char buf40; fputs(buf,fp); 3、格式3(字符输出): fputc(ch,fp) 把一个字符ch写入到文件fp中。例如: char c=A; fputc(c,fp);表示把字符c写入到文件fp中。 4、格式4(二进制文件的输出) fwrite(buffer,size,n,fp) 把内存buffer中size*n个字节的数据块写入到二进制文件fp中。函数返回成功写入磁盘的数据项数,若返回值小于n,则说明出
9、现错误。因此,常用: if(fwrite(buffer, size, n, fp)!=n) printf(Error writing to file! ); exit(1); 例如:int a20,i; for(i=0;i20;i+) ai=i; fwrite(a,sizeof(int),20,fp);表示把数组a的所有元素写入到文件fp中。示例1# include void main() int a20,b20,i; FILE *fp; fp=fopen(e:out1.txt,w); for(i=0;i20;i+) ai=i*2; for(i=0;i20;i+) fprintf(fp,%d
10、,ai); fclose(fp); fp=fopen(e:out1.txt,r); for(i=0;i20;i+) fscanf(fp,%d,&bi); printf(%4d ,bi); fclose(fp);# include void main( ) int a20,b20,i; FILE *fp; fp=fopen(e:out2.dat,wb); for(i=0;i20;i+) ai=i*2; fwrite(a,sizeof(int),20,fp); fclose(fp); fp=fopen(e:out2.dat,rb); fread(b,sizeof(int),20,fp); fclo
11、se(fp); for(i=0;i20;i+) printf(%4d ,bi);示例2第3节 文件指针的定位 对文件可以顺序读写,也可以通过文件指针指向文件中确定位置,进行文件随机读写,实现定位存取。1、rewind(fp) 使文件指针返回到文件的开头。2、fseek(fp,offset,origin) 使文件指针移动到相对位置orgin偏移距离offset个字节的位置处。参数orgin取值有三种情况:文件首(0)、文件尾(2)、当前位置(1)。3、ftell(fp) 返回一个long值,指出当前文件指针距离文件头(0)有多少个字节。若返回值为-1L,表示出错(文件外),不能读写。4、feof
12、(fp) 判断文件指针是否到文件尾,若未到文件尾,则返回0;否则,返回非零值。检测二进制文件尾不能用EOF(-1),可能二进制文件中字节含这样的值,导致错误判断文件结束。# include void main( ) char a80; int i; FILE *fp=fopen(E:Text.txt,w+); for(i=0;i3;i+) gets(a); fputs(a,fp); fputc(n,fp); rewind(fp); for(i=0;i3;i+) fgets(a,80,fp); printf(%s,a); fclose(fp);示例3示例4# include # include
13、# define BUFSIZE 1000void main() char bufBUFSIZE, filename20; FILE *fp; puts(Input name of text file to display: ); gets(filename); if(!(fp=fopen(filename,r) / =NULL puts(Error in opening file!); exit(1); while(!feof(fp) fgets(buf,BUFSIZE,fp); printf(%s,buf); fclose(fp); 复习的重点 指针部分涵盖和应用:基本数据类型和表达式、结
14、构化流程设计、模块化函数设计、数组、结构体等主要内容,是C语言的重点和精华,是复习和考试的侧重点。希望大家前后联系、系统复习,重视课件涉及的演示程序和作业题目,结合课本例题和习题,通过切实有效地上机编程和调试实践,理解和掌握C语言结构化程序设计的思想和方法。预祝:期末考试取得佳绩!学期作业 设计程序,利用动态链表,实现学生基本信息和学习成绩的管理,功能至少包括学生基本信息和学习成绩的输入、输出、读写、排序、插入、删除、查询等功能,并尽可能扩展其它相关功能。 要求1:用C语言编写,以复习和深化对结构化C语言的理解和运用。 要求2:尝试用C+语言编写,以预习和练习运用C+语言扩展的面向结构化程序设
15、计的内容。 可自主组织学习小组分工协作、讨论交流,共同完成本程序,最后将源程序和相应的对程序功能和实现的说明文本,以电子版的形式发到老师邮箱。学期总结 作为大学生的第一个学期结束,面对自己取得的成绩和进步,以及缺点和不足,需要进行反思的总结,以利于随后阶段的大学学习和生活。 1、针对高级C语言程序设计的一个学期的学习过程中的经验和教训进行总结,并对下一学期高级C+语言程序设计进行针对性的规划。要求以电子版的形式发到老师邮箱。 2、大一应该完成由高中生向大学生的心理和行为上的过渡,经过一个学期的大学学习和生活,大家想必颇有感触。希望认真思考这个问题,写一篇个人心得。要求以电子版的形式发到老师邮箱
16、。师生共勉美丽人生的7大秘诀1. 化繁为简。美丽人生源于对生活弃繁从简。2. 尽心努力。美丽人生源于苦心下功夫。3. 理清主次。美丽人生源于优先考虑重要问题。4. 有备无患。美丽人生源于懂得作些预留储备。5. 专心行事。美丽人生源于心无旁骛。6. 坚持信念。美丽人生源于坚信凡事皆有可能。7. 立刻行动!美丽人生源于坐言起行。7 Secrets to a Great LifeA great life doesnt happen by accident. A great life is the result of allocating your time, energy, thoughts, an
17、d hard work towards what you want your life to be. Stop setting yourself up for stress and failure, and start setting up your life to support success and ease. A great life is the result of using the 24/7 you get in a creative and thoughtful way, instead of just what comes next. Customize these scre
18、ating your own great life ecrets to fit your own needs and style, and start today! 1. S Simplify. A great life is the result of simplifying your life. People often misinterpret what simplify means. Its not a way to remove work from your life. When you focus on simplifying your life, you free up ener
19、gy and time for the work that you enjoy and the purpose for which you are here. In order to create a great life, you will have to make room for it in yours first. 2. E Effort. A great life is the result of your best effort. Creating a great life requires that you make some adjustments. It may mean r
20、e-evaluating how you spend your time, or choosing to spend your money in a different way. It may mean looking for new ways to spend your energy that coincide with your particular definition of a great life. Life will reward your best effort. 3. C Create Priorities. A great life is the result of crea
21、ting priorities. Its easy to spend your days just responding to the next thing that gets your attention, instead of intentionally using the time, energy and money you have in a way thats important to you. Focus on removing the obstacles that get in the way of you making sure you are honoring your pr
22、iorities. 4. R Reserves. A great life is the result of having reserves reserves of things, time, space, energy, money. With reserves, you acquire far more than you neednot 6 months living expenses, but 5 years worth; not 15 minutes of free time, 1 day. Reserves are important because they reduce the
23、fear of consequences, and that allows you to make decisions based on what you really want instead of what the fear decides for you. 5. E Eliminate distractions. A great life is the result of eliminating distractions. Up to 75% of your mental energy can be tied up in things that are draining and dist
24、racting you. Eliminating distractions can be a difficult concept to many people, since they havent really considered that there is another way to live. Look around at someones life you admire. What do they do that you would like to incorporate into your own life? Ask them how they did it. Find ways to free up your mental energy for things that are more important to you. 6. T Thoughts. A great life is the result of controlling your thoughts so that you accept and allow for the possibility that it actually can ha
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度月子中心产后恢复中心合作框架协议
- 中国广电手机产品白皮书2025年版
- 2025年度储能设备箱涵项目施工临时照明劳务分包合同
- 2025年发酵类制品项目建议书
- 2025年钻采装备项目发展计划
- 2025年青霉素类抗菌药物合作协议书
- 如何将个人成长纳入月度工作计划
- 学生发展报告与个案分析计划
- 如何开展班级传统文化教育计划
- 幼儿阅读推广计划
- GB/T 11982.1-2005聚氯乙烯卷材地板第1部分:带基材的聚氯乙烯卷材地板
- GB 5009.76-2014食品安全国家标准食品添加剂中砷的测定
- GB 4094-2016汽车操纵件、指示器及信号装置的标志
- 燃气锅炉安装施工方案5
- 2023年湖北成人学位英语考试真题
- 睡眠中心课件
- 小儿急性喉炎-课件
- 医院难免压疮申报表
- 中小学教师师德师风警示教育培训PPT
- 全文《中国式现代化》PPT
- SJG 112-2022 既有建筑幕墙安全性鉴定技术标准高清最新版
评论
0/150
提交评论