Download presentation
Presentation is loading. Please wait.
1
第九章 文件 程序数据标准输入输出设备 程序数据文件 数据流和文件 文件的打开和关闭 文件读写函数
2
第一节 数据流和文件 一、流 C提供一种输入输出逻辑设备--流,与实际设备无关
文字流:字符流。字符:普通字符及控制符(CR、LF、EOF),进行字符转换 二进制流:无字符转换过程,输入输出字节数与外设中数目一致 二、文件 相关联的数据的集合 访问文件方式:顺序存取、随机存取(按记录号存取)和索引文件(按关键字存取) 三、文件存取缓冲区——结构类型FILE 内存文件缓冲区文件 过程:通过对文件操作的函数,打开、读写、关闭文件
3
第二节 文件的打开和关闭 打开:FILE *fopen(char *filename,char *mode)
功能:建立一个文件缓冲区,在内存和文件之间建立一个流 filename:文件名,可以带路径 mode:文件打开方式的串 例:“rb”、“r+b”、“r+” “r” “w” “a” “+” “b” 只读 写 附加 读写 二进制 例:FILE *fp; fp=fopen(“file.c”,“r”); if(fp){文件打开成功操作} fclose(fp); 例:fp=fopen(“c:\TC\file.c”,“r”); if(fp){文件打开成功操作} 问成功吗? 关闭:int fclose(FILE *fp); fp:已打开的文件的指针,关闭成功返回0。
4
第三节 文件读写函数 int fread(void *buffer,int numbyte,int count,FILE *fp)
从fp所指文件中读长度为numbyte的count个数据项,保存到buffer缓冲区地址内,返回读到数据项个数。如果错或文件结束,返回0 int fwrite(void *buffer,int numbyte,int count,FILE *fp) char *fgets(char *s,int n,FILE *fp); char *fputs(char *s,int n,FILE *fp); 从流中读(写)一个记录,最多读n-1个字符 int fscanf(FILE *fp,格式串,指针表列); 从流fp中输入数据,按照对应格式存入指定地址中,返回读入表列数 int fprintf(FILE *fp,格式串,变量表列); int fgetc(FILE *fp); int fputc(FILE *fp); 例:if(fp)while(fscanf(fp,“%s”,s););
5
第三节 文件读写函数 文件读写指针 int fseek(FILE *fp,long offset,int where);
where:SEEK_SET、SEEK_CUR、SEEK_END long ftell( FILE *fp); 例:char *s1=“abcd\n”,s[80]; fp=fopen(“text.C”,“r+w”); if(fp){ while(fscanf(fp,“%s”,s)==1); fseek(fp,0,SEEK_SET); fprintf(fp,“%s”,s1); fclose(fp); }
6
第三节 文件读写函数 例(88):利用fgets或fscanf读入排好序的书名,然后用二分法寻找某书,显示结果
Top mid-1 mid mid+1 bottom 上界top=0,下界bottom=n-1 While top<=bottom mid=(top+bottom)/2 F=strcmp(被找串,中间串) F=0? T F 找到 返回mid F<0? T F Bottom=mid-1 Top=mid+1 没找到,return -1
7
结束语 复习所将内容:考试通过、取得优异的成绩 自学内容:struct 持续不断努力,提高计算机应用的能力 关注计算机应用的技术 数据库技术
科学计算:MatLab 计算机网络及应用:INTERNET 计算机操作系统:WINDOWS NT、UNIX WINDOWS程序设计:C++、VC、VB 参与计算机应用开发项目
8
试题题型举例 选择题 C语言的基本单位是( )。 A.子程序 B.过程 C.函数 D.标识符
阅读程序,在( )处应填上适当的内容,使其成为完整正确的程序 下面的程序计算Si= Ci (i=1,2,...,25) main( ) {int i,j; float ; for(i=0;i<25;i++) for(j=0;j<25;j++) scanf(“%f”,&a[i][j]); for(i=0;i<25;i++) scanf(“%f%f”,&b[i],&c[i]); for(){ s[i]= ( ); for() ();} for(i=0;i<25;i++)printf(“%f”,s[i]); } 在( )处填上适当的内容。 一个C源程序至少包括1个函数,也可以包含()个main函数和 ()个其它函数。 阅读程序,写出程序运行的结果 #include <stdio.h> main( ) { int i=1; while ( i<=23) if(++i%3!=2) continue; else printf(“%d,”,i);} 程序设计 判断m是否为素数。要求:用结构化流程图描述算法,写出C语言的源程序。
Similar presentations