版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、,文件,第十六章,本章要点,文件的基本概念 文件的基本函数 文件的顺序读写 文件的随机读写 文件简单应用,主要内容,16.1 文件的基本概念 16.2 文件的基本操作 16.2.1 文件的打开与关闭 16.2.2 文件的读写 1字符读写函数 2字符串读写函数 3格式化读写函数 4数据块读写函数 5判断文件是否结束函数 16.2.3 文件的定位,16.1 文件的基本概念,1文件的概念,文件是存储在外部存储介质上的信息的集合,每个文件用惟一的文件名(主文件名. 后缀)来标识,计算机按名对文件进行读、写等有关操作。,16.1 文件的基本概念,1文件的概念,2文件的分类,(1)按数据的存储形式分类:
2、文本文件、 二进制文件,文本文件:是将构成文件的每个字符用一个 ASCII码来存储,一个字符占一个字节。 例1:采用文本文件方式存储整数238,存储形式如下:,16.1 文件的基本概念,1文件的概念,2文件的分类,(1)按数据的存储形式分类: 文本文件、 二进制文件,二进制文件:是按数据在内存中的二进制码存储形式来存储。 例2:采用二进制文件方式存储整数238,存储形式如下:,整数238的二进制码(占2个字节),16.1 文件的基本概念,1文件的概念,2文件的分类,(1)按数据的存储形式分类:文本文件、 二进制文件,(2)按文件的处理方式分类:缓冲文件系统、非缓冲文件系统,16.1 文件的基本
3、概念,1文件的概念,2文件的分类,3文件的存取方式,顺序存取:对文件的读写操作只能按顺序进行。即每当“打开”这类文件进行读或写操作时,总是从文件的开头开始,从头到尾顺序进行读或写,要读或写第n个字节时,先要读或写前n-1个字节。 随机存取:对文件的读写操作可按指定的字节号进行。即可以通过调用库函数去指定开始读或写的字节号,然后直接对该位置上的数据进行读或写操作。,16.1 文件的基本概念,1文件的概念,2文件的分类,3文件的存取方式,4文件类型的指针,文件指针的定义形式如下: FILE *标识符; 其中,标识符是一个指向FILE类型结构体的指针变量名,16.2 文件的基本操作,文件操作一般有如
4、下四个基本步骤: (1)定义文件指针。 (2)打开文件。 (3)对文件进行读或写操作。 (4)关闭文件。,16.2.1 文件的打开与关闭,1文件的打开,调用库函数fopen()的一般形式为: FILE *标识符; 标识符= fopen(文件名,文件使用方式); 例如:FILE *fp; fp= fopen(DT.dat,r);,16.2 文件的基本操作,16.2.1 文件的打开与关闭,1文件的打开,2文件的关闭,调用库函数fclose()的一般形式为: fclose(标识符); 例如:FILE *fp; fp= fopen(DT.dat,r); fclose(fp);,16.2 文件的基本操作
5、,16.2.1 文件的打开与关闭,16.2.2 文件的读写,1字符读写函数,16.2 文件的基本操作,函数调用格式: ch=fgetc(fp); 其中,ch是字符型变量,fp是文件指针。 函数功能:从文件指针fp指向的文件当前位置(位置指针)读出一个字符,然后文件位置指针自动后移,指向文件中的下一个字符,返回值为读入的字符。若遇到文件结束符,则返回结束符EOF(值为-1)。文件指针fp指向的文件必须已经以读的方式打开。,(1)字符输入函数fgetc()。,(1)字符输入函数fgetc()。,例16.1 将磁盘文件myfile1.dat的信息读出并显示到屏幕上(假设文件已经存在)。,#inclu
6、de #include main() FILE *fp; char ch; if (fp=fopen(myfile1.dat , r)=NULL) printf(n File not exist!); exit(0); while(ch=fgetc(fp)!=EOF) putchar( ch ); putchar(n); fclose(fp); ,(2)字符输出函数fputc()。,函数调用格式: fputc(ch,fp); 其中,ch是字符型数据,fp是文件指针。 函数功能:把一个字符ch写到文件指针fp指向的磁盘文件上去。输出成功,返回输出的字符;输出失败,返回一个EOF(值为-1)。,(
7、2)字符输出函数fputc()。,例16.2 从键盘输入一串字符存到一个磁盘文件,#include #include main() FILE *fp; char ch; if (fp=fopen(myfile2.dat , w )=NULL) printf( n File cannot open! ); exit(0); while(ch=getchar( )!=# ) fputc ( ch,fp ); fclose(fp); ,16.1 文件的基本概念,16.2 文件的基本操作,16.2.1 文件的打开与关闭,16.2.2 文件的读写,1字符读写函数,2字符串读写函数,(1)字符串输入函数f
8、gets()。,函数调用格式: fgets(str,n,fp); 其中,str是字符型指针或字符型数组,n是整型数据,fp是文件指针。 函数功能:从文件指针fp指向的文件中读取n-1个字符,把它送到由str指向的字符数组中。字符数组的长度应大于n,可存放n-1个字符,字符数组的最后一个元素为0。若在读入n-1个字符前遇到换行符n或文件结束符号EOF,立即结束读入操作。,(1)字符串输入函数fgets()。,例16.3 利用字符串输入函数fgets()将磁盘文件myfile3.dat的信息读出并显示到屏幕上(假设文件已经存在)。,#include #include main() FILE *fp
9、; char str81; if(fp=fopen(myfile3.dat,r)=NULL) printf(Cannot open file!); exit(0); while(fgets(str,81,fp)!=NULL) puts(str); fclose(fp); ,(2)字符串输出函数fputs()。,函数调用格式: fputs(str,fp); 其中,str是字符型指针或字符型数组或字符串常量,fp是文件指针。 函数功能:把字符串str写入由文件指针 fp指向的文件中。输出成功,返回0;输出失败,返回非0。,(2)字符串输出函数fputs()。,例16.4 从键盘输入若干行字符存到一
10、个磁盘文件myfile4.dat中。,#include #include main() FILE *fp; char str81; if( (fp=fopen(myfile4.dat, w )=NULL) printf( File cannot open! ); exit(0); scanf(%s,str); fputs(str,fp); fclose(fp); ,16.1 文件的基本概念,16.2 文件的基本操作,16.2.1 文件的打开与关闭,16.2.2 文件的读写,1字符读写函数,2字符串读写函数,3格式化读写函数,(1)格式化输入函数fscanf(),函数调用格式: fscanf(文
11、件指针,格式字符串,输入表列); 函数功能:从“文件指针”指定的文件中按“格式字符串”指定格式输入数据给“输入表列”给出的变量。返回实际被赋值参数的个数。,(1)格式化输入函数fscanf(),例16.5 #include main() FILE *fp; int k,n,a6=1,2,3,4,5,6; fp=fopen(d2.dat,w); fprintf(fp,%d%d%dn,a0,a1,a2); fprintf(fp,%d%d%dn,a3,a4,a5); fclose(fp); fp=fopen(d2.dat,r); fscanf(fp,%d%d, ,(1)格式化输入函数fscanf()
12、,(2)格式化输出函数fprintf(),函数调用格式: fprintf(文件指针,格式字符串,输出表列); 函数功能:按“格式字符串”指定格式将“输出表列”给出的数据项输出到“文件指针”指定的文件中。返回实际输出数据的个数。,(1)格式化输入函数fscanf(),(2)格式化输出函数fprintf(),例16.6 从键盘按格式输入数据存到磁盘文件中去。,#include main() char s80,c80; int a,b; FILE *fp; if(fp=fopen(test.dat,w)=NULL) puts(cant open file); exit() ; fscanf(stdi
13、n,%s%d,s, ,16.1 文件的基本概念,16.2 文件的基本操作,16.2.1 文件的打开与关闭,16.2.2 文件的读写,1字符读写函数,2字符串读写函数,3格式化读写函数,4数据块读写函数,(1)数据块输入函数fread(),函数调用格式: fread(buffer,size,count,fp); 其中,buffer是一个指针,指向存放数据块(数组)的首地址,size是输入数据项的字节长度,count是输入数据项的个数,fp是文件指针。 函数功能:从文件指针fp指定的文件中输入count个字节为size的数据,存放在buffer指向的数组中。,(1)数据块输入函数fread(),(
14、2)数据块输出函数fwrite(),函数调用格式: fwrite(buffer,size,count,fp); 其中,buffer是一个指针,指向存放数据块(数组)的首地址,size是输出数据项的字节长度,count是输出数据项的个数,fp是文件指针。 函数功能:从buffer指针所指存储单元开始,将count个字节为size的数据输出到文件指针fp指定的文件中。,16.1 文件的基本概念,16.2 文件的基本操作,16.2.1 文件的打开与关闭,16.2.2 文件的读写,1字符读写函数,2字符串读写函数,3格式化读写函数,4数据块读写函数,5判断文件是否结束函数,函数调用格式: feof(f
15、p); 其中,fp是文件指针。 函数功能:判断文件指针fp所指文件是否结束,如果遇到文件结束,函数返回值为1,否则,函数返回值为0。,例16.7 利用feof(fp)函数改写例16.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); ,1文件指针重定位函数rewind(),函数调用格式: rewind(fp); 其中:fp是文件指针。 函数功能:使文件指针fp指定的文件的位置指针指向文件的开始位置(文件头)。,1文件指针重定位函数rewind(),2移动位置指针函数fseek(),函数调用格式: fseek (文件指针,位移量,起始位置); 函数功能:使“文件指针”指定的文件的位置指针从“起始位置”为基点,向前或向后移动“位移量”个字节数。 说明: (1)起始位置分别有0(文件开始)、1(文件当前位置)和2(文件末尾)三种情况。 (2)位移量可正可负。位移量为正数时,位置指针向后移动,位移量为负数时
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026甘肃白银有色集团股份有限公司招聘130人笔试模拟试题及答案解析
- 2026江西恒邦财产保险股份有限公司第一批次社会招聘11人笔试备考题库及答案解析
- 全球灾害风险金融工具道德风险累积-基于2024年加勒比CatastropheRiskInsurance案例
- 2026广东惠州市大亚湾第二中学春季学期招聘校聘合同制教师2人(二)考试参考题库及答案解析
- 堤防泥质土改良方案
- 路面热再生施工技术
- 地形修整与排水设计施工方案
- 路面交通影响最小化施工方案
- 杀菌剂投加管路施工方案
- 低耗能生产线建设方案
- 宇树机器狗分析与深度拆解
- GB/T 25748-2025压铸镁合金
- 2026年江西环境工程职业学院单招职业适应性测试模拟测试卷附答案
- 酒店会务预订协议书
- (安徽省十联考)合肥一中2026届高三12月份教学质量测英语试卷(含答案)
- 2025年公安局网络安全测试知识测试题附答案
- 安全生产会议制度范文
- 2025年电工证考试题库(题库)及答案
- 国家电网考试历年真题汇编(含答案)
- 与同伴友好相处课件
- 教职工培训课程设计方案
评论
0/150
提交评论