




已阅读5页,还剩32页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第11章 文件,11.1 文件的基本概念,1文件的概念,文件是存储在外部存储介质上的信息的集合,每个文件用惟一的文件名(主文件名. 后缀)来标识,计算机按名对文件进行读、写等有关操作。,第11章 文件,11.1 文件的基本概念,1文件的概念,2文件的分类,(1)按数据的存储形式分类: 文本文件、 二进制文件,文本文件:是将构成文件的每个字符用一个 ASCII码来存储,一个字符占一个字节。 例1:采用文本文件方式存储整数238,存储形式如下:,第11章 文件,11.1 文件的基本概念,1文件的概念,2文件的分类,(1)按数据的存储形式分类: 文本文件、 二进制文件,二进制文件:是按数据在内存中的二进制码存储形式来存储。 例2:采用二进制文件方式存储整数238,存储形式如下:,整数238的二进制码(占2个字节),第11章 文件,11.1 文件的基本概念,1文件的概念,2文件的分类,(1)按数据的存储形式分类:文本文件、 二进制文件,(2)按文件的处理方式分类:缓冲文件系统、非缓冲文件系统,第11章 文件,11.1 文件的基本概念,1文件的概念,2文件的分类,3文件的存取方式,顺序存取:对文件的读写操作只能按顺序进行。即每当“打开”这类文件进行读或写操作时,总是从文件的开头开始,从头到尾顺序进行读或写,要读或写第n个字节时,先要读或写前n-1个字节。 随机存取:对文件的读写操作可按指定的字节号进行。即可以通过调用库函数去指定开始读或写的字节号,然后直接对该位置上的数据进行读或写操作。,第11章 文件,11.1 文件的基本概念,1文件的概念,2文件的分类,3文件的存取方式,4文件类型的指针,文件指针的定义形式如下: FILE *标识符; 其中,标识符是一个指向FILE类型结构体的指针变量名,第11章 文件,11.1 文件的基本概念,11.2 文件的基本操作,文件操作一般有如下四个基本步骤: (1)定义文件指针。 (2)打开文件。 (3)对文件进行读或写操作。 (4)关闭文件。,第11章 文件,11.1 文件的基本概念,11.2 文件的基本操作,11.2.1 文件的打开与关闭,1文件的打开,调用库函数fopen()的一般形式为: FILE *标识符; 标识符= fopen(文件名,文件使用方式); 例如:FILE *fp; fp= fopen(“DT.dat“,“r“);,第11章 文件,第11章 文件,11.1 文件的基本概念,11.2 文件的基本操作,11.2.1 文件的打开与关闭,1文件的打开,2文件的关闭,调用库函数fclose()的一般形式为: fclose(标识符); 例如:FILE *fp; fp= fopen(“DT.dat“,“r“); fclose(fp);,第11章 文件,11.1 文件的基本概念,11.2 文件的基本操作,11.2.1 文件的打开与关闭,11.2.2 文件的读写,1字符读写函数,第11章 文件,函数调用格式: ch=fgetc(fp); 其中,ch是字符型变量,fp是文件指针。 函数功能:从文件指针fp指向的文件当前位置(位置指针)读出一个字符,然后文件位置指针自动后移,指向文件中的下一个字符,返回值为读入的字符。若遇到文件结束符,则返回结束符EOF(值为-1)。文件指针fp指向的文件必须已经以读的方式打开。,(1)字符输入函数fgetc()。,第11章 文件,(1)字符输入函数fgetc()。,例11.1 将磁盘文件myfile.dat的信息读出并显示到屏幕上(假设文件已经存在)。 #include main() FILE *fp; char ch; if (fp=fopen(“myfile.dat“ , “r“)=NULL) printf(“n File not exist!“); exit(0); while(ch=fgetc(fp)!=EOF) putchar( ch ); fclose(fp); ,第11章 文件,(1)字符输入函数fgetc()。,(2)字符输出函数fputc()。,函数调用格式: fputc(ch,fp); 其中,ch是字符型数据,fp是文件指针。 函数功能:把一个字符ch写到文件指针fp指向的磁盘文件上去。输出成功,返回输出的字符;输出失败,返回一个EOF(值为-1)。,第11章 文件,(1)字符输入函数fgetc()。,(2)字符输出函数fputc()。,例11.2 从键盘输入一串字符存到一个磁盘文件myfile.dat中,以“#”结束。 #include main() FILE *fp; char ch; if (fp=fopen(“myfile.dat“ , “w“ )=NULL) printf(“ n File cannot open! “); exit(0); while(ch=getchar( )!=# ) fputc ( ch,fp ); fclose(fp); ,第11章 文件,11.1 文件的基本概念,11.2 文件的基本操作,11.2.1 文件的打开与关闭,11.2.2 文件的读写,1字符读写函数,2字符串读写函数,第11章 文件,(1)字符串输入函数fgets()。,函数调用格式: fgets(str,n,fp); 其中,str是字符型指针或字符型数组,n是整型数据,fp是文件指针。 函数功能:从文件指针fp指向的文件中读取n-1个字符,把它送到由str指向的字符数组中。字符数组的长度应大于n,可存放n-1个字符,字符数组的最后一个元素为0。若在读入n-1个字符前遇到换行符n或文件结束符号EOF,立即结束读入操作。,第11章 文件,(1)字符串输入函数fgets()。,例11.3 利用字符串输入函数fgets()将磁盘文件myfile.dat的信息读出并显示到屏幕上(假设文件已经存在)。 #include main() FILE *fp; char str81; if(fp=fopen(“myfile.dat“,“r“)=NULL) printf(“Cannot open file!“); exit(0); while(fgets(str,81,fp)!=NULL) puts(str); fclose(fp); ,第11章 文件,(1)字符串输入函数fgets()。,(2)字符串输出函数fputs()。,函数调用格式: fputs(str,fp); 其中,str是字符型指针或字符型数组或字符串常量,fp是文件指针。 函数功能:把字符串str写入由文件指针 fp指向的文件中。输出成功,返回0;输出失败,返回非0。,第11章 文件,(1)字符串输入函数fgets()。,(2)字符串输出函数fputs()。,例11.4 从键盘输入若干行字符存到一个磁盘文件myfile.dat中。 #include main() FILE *fp; char str 81; if( (fp=fopen(“myfile.dat“, “w“ ) = =NULL) printf(“ File cannot open! “ ); exit(0); while (fgets(str,81,stdin)!=NULL ) fputs(str,fp); fclose(fp); ,第11章 文件,11.1 文件的基本概念,11.2 文件的基本操作,11.2.1 文件的打开与关闭,11.2.2 文件的读写,1字符读写函数,2字符串读写函数,3格式化读写函数,第11章 文件,(1)格式化输入函数fscanf(),函数调用格式: fscanf(文件指针,格式字符串,输入表列); 函数功能:从“文件指针”指定的文件中按“格式字符串”指定格式输入数据给“输入表列”给出的变量。返回实际被赋值参数的个数。,第11章 文件,(1)格式化输入函数fscanf(),例11.5 按指定的格式,从文件student. dat中将学生信息读出并显示在屏幕上。 #include main() FILE *fp; int i; if(fp=fopen(“student.dat“,“r“)=NULL) printf(“Cannot open file! n“); exit(0); printf (“output data:n “); for(i=0;i5;i+) fscanf(fp,“%d %s%c%d%s“, ,struct student int num; char name20; char sex; int age; char addr30; a5;,第11章 文件,(1)格式化输入函数fscanf(),(2)格式化输出函数fprintf(),函数调用格式: fprintf(文件指针,格式字符串,输出表列); 函数功能:按“格式字符串”指定格式将“输出表列”给出的数据项输出到“文件指针”指定的文件中。返回实际输出数据的个数。,第11章 文件,(1)格式化输入函数fscanf(),(2)格式化输出函数fprintf(),例11.6 按指定的格式,将学生信息写入到文件student. dat中。 #include main() FILE *fp; int i,; if(fp=fopen(“student.dat“,“w“)=NULL) printf(“Cannot open file! n“); exit(0); printf (“input data:n “); for(i=0;i5;i+) scanf(“%d %s%c%d%s“, ,struct student int num; char name20; char sex; int age; char addr30; a5 ;,第11章 文件,11.1 文件的基本概念,11.2 文件的基本操作,11.2.1 文件的打开与关闭,11.2.2 文件的读写,1字符读写函数,2字符串读写函数,3格式化读写函数,4数据块读写函数,第11章 文件,(1)数据块输入函数fread(),函数调用格式: fread(buffer,size,count,fp); 其中,buffer是一个指针,指向存放数据块(数组)的首地址,size是输入数据项的字节长度,count是输入数据项的个数,fp是文件指针。 函数功能:从文件指针fp指定的文件中输入count个字节为size的数据,存放在buffer指向的数组中。,第11章 文件,(1)数据块输入函数fread(),例11.7 利用数据块输入函数fread()完成例11.5。 #include main() FILE *fp; int i; int size; size=sizeof(struct student); if(fp=fopen(“student.dat“,“r“)=NULL) printf(“Cannot open file! n“); exit(0); printf (“output data:n “); fread(a,size,5,fp); for(i=0;i5;i+,qq+) printf(“%d %s%c%d%sn“,ai.num,, ai.sex,ai.age,ai.addr); fclose(fp); ,struct student int num; char name20; char sex; int age; char addr30; a5 ;,第11章 文件,(1)数据块输入函数fread(),(2)数据块输出函数fwrite(),函数调用格式: fwrite(buffer,size,count,fp); 其中,buffer是一个指针,指向存放数据块(数组)的首地址,size是输出数据项的字节长度,count是输出数据项的个数,fp是文件指针。 函数功能:从buffer指针所指存储单元开始,将count个字节为size的数据输出到文件指针fp指定的文件中。,第11章 文件,(1)数据块输入函数fread(),struct student int num; char name20; char sex; int age; char addr30; a5 ;,例11.8 利用数据块输入函数fwrite()完成例11.6。 #include main() FILE *fp; int i; int size; size=sizeof(struct student); if(fp=fopen(“student.dat“,“w“)=NULL) printf(“Cannot open file! n“); exit(0); printf (“input data:n “); for(i=0;i5;i+) scanf(“%d %s%c%d%s“, ,(2)数据块输出函数fwrite(),第11章 文件,11.1 文件的基本概念,11.2 文件的基本操作,11.2.1 文件的打开与关闭,11.2.2 文件的读写,1字符读写函数,2字符串读写函数,3格式化读写函数,4数据块读写函数,5判断文件是否结束函数,第11章 文件,函数调用格式: feof(fp); 其中,fp是文件指针。 函数功能:判断文件指针fp所指文件是否结束,如果遇到文件结束,函数返回值为1,否则,函数返回值为0。,第11章 文件,例11.9 利用feof(fp)函数改写例11.1:将磁盘文件myfile.dat的信息读出并显示到屏幕上(假设文件已经存在)。 #include main() FILE *fp; char ch; if (fp=fopen(“myfile.dat“ , “r“)=NULL) printf(“n File not exist!“); exit(0); ch=fgetc(fp); while(!feof(fp) putchar( ch ); ch=fgetc(fp); fclose(fp); ,第11章 文件,11.1 文件的基本概念,11.2 文件的基本操作,11.2.1 文
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- QC/T 1220-2025商用车离合器用液压软管总成
- GB/T 45963.2-2025数字政府架构框架第2部分:架构设计
- 2025年航空航天产业集团招聘面试模拟题及备考技巧
- 消费品安全责任协议样本
- 2025年弱电维修工职业资格测试题
- 2025年汽车销售顾问职业素质评估考试试题及答案解析
- 2025年农业科技推广员技能水平考试试题及答案解析
- 2025年山东安全员C考试重点难点题库
- 2025年航海安全法规题库
- 2025年建筑工程质量监督员资格考试试题及答案解析
- 老旧小区改造给排水施工方案
- 【人教版化学】选择性必修1 知识点默写小纸条(答案背诵版)
- DB21-T 2523-2015矿山地质环境恢复治理规程
- 2024天津高考英语试题及答案
- 实验室中央空调施工方案
- 幼儿园 中班语言绘本《章鱼先生卖雨伞》
- 中医学藏象学说课件
- 软件平台建设和运营合同
- 连锁酒店相关行业项目操作方案
- AQ/T 7014-2018 新型干法水泥生产安全规程(正式版)
- 全案设计高级感合同
评论
0/150
提交评论