- 1、本文档共40页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言chap12-文件
Chap 12 文件 12.1 学生成绩文件统计 12.2 用户信息加密和校验 12.3 文件综合应用:资金账户管理 本章要点 什么是文件?C文件是如何存储的? 什么是文件缓冲系统?工作原理如何? 什么是文本文件和二进制文件? 怎样打开、关闭文件? 怎样编写文件读写程序? 怎样编写程序,实现简单的数据处理? 12.1 学生成绩文件统计 【例12-1】有5位学生的计算机等级考试成绩被事先保存在数据文件C:\f12-1.txt(C盘根目录下的文件f12-1.txt,需事先准备好该文件)中,包括学号、姓名和分数,文件内容如下: 301101 Zhangwen 91 301102 Chenhui 85 301103 Wangweidong 76 301104 Zhengwei 69 301105 Guowentao 55 请读出文件的所有内容显示到屏幕,并输出平均分。 例12-1 源程序 #include stdio.h #include stdlib.h #include process.h int main(void) { FILE *fp; /*1.定义文件指针*/ long num; char stname[20]; int i, score; int avg_score = 0; if((fp=fopen(c:\\f12-1.txt,r)) == NULL) /*2.打开文件*/ { printf(File open error!\n); exit(0); } 续下页…. 例12-1 源程序 /*3.文件处理(逐个读入和处理数据)*/ for(i=0;i5;i++) { /*从文件读入成绩保存到变量*/ fscanf(fp,%ld%s%d,num,stname,score); avg_score += score; /*统计总分*/ /*输出成绩到屏幕*/ printf(%ld %s %d\n,num,stname,score); } /*输出平均分到屏幕*/ printf(Average score: %d\n, avg_score/5); if(fclose(fp)){ /*4.关闭文件*/ printf( Can not close the file!\n ); exit(0); } return 0; } 12.1.2 文件的概念 12.1.3 文本文件和二进制文件 C语言中的文件是数据流(由一个个的字节数据组成) 文件的两种数据形式: ASCII码 (文本文件 text stream)字符流 二进制码(二进制文件 binary stream)二进制流 二进制文件是直接把内存数据以二进制形式保存。 例如,整数1234 文本文件保存:49 50 51 52 (4个字符) 二进制文件保存: 04D2 (1234的二进制数) 12.1.4 缓冲文件系统 内存单元 内存单元 12.1.4 缓冲文件系统 向磁盘输出数据:数据 缓冲区,装满缓冲区后 磁盘文件。 从磁盘读入数据:先一次性从磁盘文件将一批数据输入到缓冲区,然后再从缓冲区逐个读入数据到变量。 缓冲文件与文件类型指针 用文件指针指示文件缓冲区中具体读写的位置 FILE *fp; 12.1.5 文件结构与文件类型指针 1. 文件结构与自定义类型typedef FILE:结构类型, 用 typedef 定义(见stdio.h) typedef struct{ short level; /* 缓冲区使用量 */ unsigned flags; /* 文件状态标志 */ char fd; /* 文件描述符 */ short bsize; /* 缓冲区大小 */ unsigned char *buffer; /* 文件缓冲区的首地址 */ unsigned char
文档评论(0)