1、第九章 文件,程序数据标准输入输出设备 程序数据文件 数据流和文件 文件的打开和关闭 文件读写函数,第一节 数据流和文件,一、流 C提供一种输入输出逻辑设备-流,与实际设备无关 文字流:字符流。字符:普通字符及控制符(CR、LF、EOF),进行字符转换 二进制流:无字符转换过程,输入输出字节数与外设中数目一致 二、文件 相关联的数据的集合 访问文件方式:顺序存取、随机存取(按记录号存取)和索引文件(按关键字存取) 三、文件存取缓冲区结构类型FILE 内存文件缓冲区文件 过程:通过对文件操作的函数,打开、读写、关闭文件,第二节 文件的打开和关闭,打开:FILE *fopen(char *file
2、name,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:TCfile.c”,“r”);if(fp)文件打开成功操作 问成功吗? 关闭:int fclose(FILE *fp); fp:已打开的文件的指针,关闭成功返回0。,第三节 文件读写函数,i
3、nt 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,格式串,指
4、针表列); 从流fp中输入数据,按照对应格式存入指定地址中,返回读入表列数 int fprintf(FILE *fp,格式串,变量表列); int fgetc(FILE *fp); int fputc(FILE *fp); 例:if(fp)while(fscanf(fp,“%s”,s););,第三节 文件读写函数,文件读写指针 int fseek(FILE *fp,long offset,int where); where:SEEK_SET、SEEK_CUR、SEEK_END long ftell( FILE *fp);,例:char *s1=“abcdn”,s80; fp=fopen(“te
5、xt.C”,“r+w”); if(fp)while(fscanf(fp,“%s”,s)=1);fseek(fp,0,SEEK_SET);fprintf(fp,“%s”,s1);fclose(fp); ,第三节 文件读写函数,例(88):利用fgets或fscanf读入排好序的书名,然后用二分法寻找某书,显示结果,结束语,复习所将内容:考试通过、取得优异的成绩 自学内容:struct 持续不断努力,提高计算机应用的能力 关注计算机应用的技术 数据库技术 科学计算:MatLab 计算机网络及应用:INTERNET 计算机操作系统:WINDOWS NT、UNIX WINDOWS程序设计:C+、VC、
6、VB 参与计算机应用开发项目,试题题型举例,选择题 C语言的基本单位是( )。 A.子程序 B.过程 C.函数 D.标识符 阅读程序,在( )处应填上适当的内容,使其成为完整正确的程序 下面的程序计算Si= +Ci (i=1,2,.,25) main( ) int i,j; float ; for(i=0;i25;i+)for(j=0;j25;j+) scanf(“%f”, ,在( )处填上适当的内容。一个C源程序至少包括1个函数,也可以包含()个main函数和 ()个其它函数。 阅读程序,写出程序运行的结果 #include main( ) int i=1; while ( i=23)if(+i%3!=2) continue;else printf(“%d,”,i); 程序设计判断m是否为素数。要求:用结构化流程图描述算法,写出C语言的源程序。,