文件及其操作、上机.ppt_第1页
文件及其操作、上机.ppt_第2页
文件及其操作、上机.ppt_第3页
文件及其操作、上机.ppt_第4页
文件及其操作、上机.ppt_第5页
已阅读5页,还剩15页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、文件指针及其操作,文件的概念:在C语言中,文件可以看作字节的序列,根据文件的数据序列组织形式,可以分为ASCII文件和二进制文件。,图:ASCII形式与二进制形式的比较,文件结构变量的类型是由系统定义,取名为FILE。,文件打开时,系统自动为该文件定义一个文件结构变量(即文件信息描述区) ,使该文件与其对应的文件结构变量建立联系。程序中可定义一个文件类型指针,使它指向该文件结构变量。,文件结构变量的类型是由系统定义,取名为FILE。,对文件的读写处理都是通过指向文件结构变量的指针进行。指向文件结构变量的指针定义如下: FILE *文件类型指针名; 如果程序中同时要处理几个文件,则应该定义几个文

2、件类型指针,例如: FILE *fp1,*fp2,*fpn;,1. 文件的打开,FILE * fopen( const char * filename, const char mode);,R只读 W可写 A添加方式打开文本文件 r+以可读写方式打开文本文件 w+以可读写方式打开文本文件,如果文件不存在,则创建文件 a+以可读和添加方式打开文本文件rb,wb,ab,r+b,rb+,w+b,wb+,a+b,ab+二进制文件,与上述类似,FILE *fp; fp=fopen(myfile.dat, w);,文件打开方式mode主要有:,记忆方法: 1.+:追加另一个功能,例如:r+(只读+可写)

3、2.,int fclose(FILE * stream);,2. 文件的关闭,例如: fclose(fp); /打开fp指向的文件,fp是文件指针,3. fprintf函数、fscanf函数,fprintf函数、fscanf函数与printf函数和scanf函数作用相仿,都是格式化读写函数。只有一点不同: fprintf函数和fscanf函数的读写对象不是终端而是磁盘文件。 一般调用方式如下: fprintf(文件指针,格式字符串,写入到文件); fscanf(文件指针,格式字符串,从文件中读出数据到数据项); 例如: fprintf(fp , “%d , %6.2f” , i , t) ;

4、作用是将整型变量i 和实型变量 t 的值按“%d和%6.2f 的格式输出(写入)到fp所指向的文件上。,同样: fscanf (fp , “%d , % f ” , 可以从fp所指向的文件上读出数据,送给变量i 和 t 。,4.fgets函数和fputs函数,fgets函数的作用是从指定文件读入一个字符串。如: fgets(str , n , fp) ; 从fp指向的文件输入n-1 个字符,并把他们放到字符数组str中。如果在读入n-1 个字符结束之前,遇到换行符或EOF,读入即结束。字符串读入后在最后加一个0字符。fgets函数返回值为字符数组str的首地址。,fputs函数作用是向指定的文

5、件输出一个字符串。如: fputs( “China” , fp) ; 把字符串“China” 输出到fp指向的文件。 fputs函数中的第一个参数可以是字符串常量、字符数组名或字符型指针。输出成功,函数值为0;失败时,为EOF值。,5.rewind,rewind(fp) 使文件指针重新置于文件开头,2008-940、有以下程序( B) #include main() FILE *pf;char *s1=China,*s2=Beijing;pf=fopen(abc.dat,wb+);fwrite(s2,7,1,pf);rewind(pf);fwrite(s1,5,1,pf);fclose(pf)

6、;以下程序执行后abc.dat文件的内容是A) China B) Chinang C) ChinaBeijing D)BeijingChina,【2010-3】,函数的使用的格式。 fopen( “ 文件名 ” , “ 打开方式 ” ) ; fclose (文件指针); fscanf (文件指针,格式控制字符串,输入列表项); fprintf (文件指针,格式控制字符串,输出列表项); fwrite( 存入数据的指针,每一个数据占有的字节,输入数据的个数,文件指针 ) ; fread( 读出数据的指针,每一个数据占有的字节,输出数据的个数,文件指针 ) ; feof(fp)测试文件指针是否到文

7、件尾,若到文件末尾,函数值为真(非0)。,掌握文件中 fopen 、 fprintf 、 fscanf 、 fputs 、 fputc 、 fgets 、 fgetc 、 fseek 、 fwrite 、 fread 、 rewind、feof() 函数的功能和使用的格式。,文件操作上机部分: 1 、文件打开之后要注意关闭文件,关闭文件的函数 fclose( 文件指针 ) ; 2 、在循环语句中如果使用到的是 while(!feof ( ) ) 空格中填写的文件指针,表明判断的是文 件指针是否已经指到了文件的末尾。 备注:如果文件指针指到了文件的末尾,则 feof 返回 的是非零值,如果没有指

8、在文件的末尾,返回的是 0 值。,27、程序通过定义学生结构体变量,存储了学生的学号、 姓名和3门课的成绩。所有学生数据均以二进制方式 输出到文件中。函数fun的功能是从形参filename所指的 文件中读入学生数据,并按照学号从小到大排序后, 再用二进制方式把排序后的学生数据输出到filename 所指的文件中,覆盖原来的文件内容。 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include #define N 5 typedef struct student lon

9、g sno; char name10; float score3; STU;,void fun(char *filename) FILE *fp; int i, j; STU sN, t; /*found*/ fp = fopen(filename, _1_); fread(s, sizeof(STU), N, fp); fclose(fp); for (i=0; iN-1; i+) for (j=i+1; jN; j+) /*found*/ if (si.sno _2_) t = si; si = sj; sj = t; fp = fopen(filename, wb); /*found*/

10、 _3_(s, sizeof(STU), N, fp); fclose(fp); ,“rb” /以只读的方式打开二进制文件,sj.sno /被比较的对象是对等的,可以从后续语句中找到,fwrite /与fread对应的是fwrite 与fscanf对应的是fprintf,void main() STU tN= 10005,ZhangSan, 95, 80, 88, 10003,LiSi, 85, 70, 78, 10002,CaoKai, 75, 60, 88, 10004,FangFang, 90, 82, 87, 10001,MaChao, 91, 92, 77, ssN; int i,j

11、; FILE *fp; fp = fopen(student.dat, wb); fwrite(t, sizeof(STU), 5, fp); fclose(fp); printf(nnThe original data :nn); for (j=0; jN; j+) printf(nNo: %ld Name: %-8s Scores: ,tj.sno, ); for (i=0; i3; i+) printf(%6.2f , tj.scorei); printf(n); fun(student.dat); printf(nnThe data after sorting :nn);

12、 fp = fopen(student.dat, rb); fread(ss, sizeof(STU), 5, fp); fclose(fp); for (j=0; jN; j+) printf(nNo: %ld Name: %-8s Scores: ,ssj.sno, ); for (i=0; i3; i+) printf(%6.2f , ssj.scorei); printf(n); ,32、给定程序中,函数fun的功能是将形参给定的 字符串、整数、浮点数写到文本文件中, 再用字符方式从此文本文件中逐个读入并显示在终端屏幕上。 请在程序的下划线处填入正确的内容 并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!,#include void fun(char *s, int a, double f) /*found*/ _1_ fp; char ch; fp = fopen(file1.txt, w); fprintf(fp, %s %d %fn, s, a, f); fclose(fp); fp = fopen(file1.txt, r); printf(nThe result :nn); ch = fgetc(fp); /*found*/ while (!feof(_2

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论