中科大C语言程序设计课件.ppt

上传人:scccc 文档编号:11903773 上传时间:2021-10-22 格式:PPT 页数:31 大小:98.50KB
返回 下载 相关 举报
中科大C语言程序设计课件.ppt_第1页
第1页 / 共31页
中科大C语言程序设计课件.ppt_第2页
第2页 / 共31页
中科大C语言程序设计课件.ppt_第3页
第3页 / 共31页
中科大C语言程序设计课件.ppt_第4页
第4页 / 共31页
中科大C语言程序设计课件.ppt_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《中科大C语言程序设计课件.ppt》由会员分享,可在线阅读,更多相关《中科大C语言程序设计课件.ppt(31页珍藏版)》请在三一文库上搜索。

1、第10章 文件操作,中科大C语言程序设计,目 录,文件概述 文件类型指针 文件的打开和关闭 文件的读写 文件的定位,中科大C语言程序设计,文件 (File),C语言中的文件 C语言把文件看作一个字节的序列 C语言对文件的存取是以字节为单位的 文本文件(ASCII文件) 按数据的ASCII形式存储 二进制文件 按数据在内存中的二进制形式存储,中科大C语言程序设计,文本文件和二进制文件,中科大C语言程序设计,缓冲文件系统,中科大C语言程序设计,文件类型指针,FILE类型 保存被使用的文件的有关信息 所有的文件操作都需要FILE类型的指针 FILE是库文件中定义的结构体的别名 注意不要写成struc

2、t FILE 举例 FILE *fp;,中科大C语言程序设计,FILE类型,typedef struct short level; /*缓冲区满空程度*/ unsigned flags; /*文件状态标志*/ char fd; /*文件描述符*/ unsigned char hold; /*无缓冲则不读取字符*/ short bsize; /*缓冲区大小*/ unsigned char *buffer; /*数据缓冲区*/ unsigned char *curp; /*当前位置指针*/ unsigned istemp; /*临时文件指示器*/ short token; /*用于有效性检查*/

3、FILE;,中科大C语言程序设计,文件的打开 (fopen函数),函数原型 FILE *fopen(char *, char *mode); 参数说明 :要打开的文件路径 mode :打开模式 返回值 若成功,返回指向被打开文件的指针 若出错,返回空指针NULL(0),中科大C语言程序设计,文件的打开模式,中科大C语言程序设计,文件的打开举例,FILE *fp1, *fp2, *fp3; char =; /* 以文本只读方式打开file1 */ if (!(fp1=fopen(file1, r) printf(Cannot Open This File!n); exit(0); /* 退出程序

4、 */ /* 以二进制读写方式打开 */ fp2=fopen(C:HOME, rb+); /* 以二进制读写方式打开 */ fp3=fopen(, a+b);,中科大C语言程序设计,文件的关闭 (fclose函数),函数原型 int fclose(FILE *fp); 参数说明 fp:要关闭的文件指针 返回值 若成功,返回0 若出错,返回EOF(-1) 不用的文件应关闭,防止数据破坏丢失,中科大C语言程序设计,文件的关闭举例,FILE *fp; char file=D:USERSTUDENTS.DAT; if (!(fp=fopen(file, rb+) printf(Open error!n

5、, file); exit(0); . . fclose(fp);,中科大C语言程序设计,文件的读写,中科大C语言程序设计,feof函数,函数原型 int feof(FILE *fp); 参数 fp:文件指针 返回值 若文件结束,返回非零值 若文件尚未结束,返回0,中科大C语言程序设计,fputc/putc函数,函数原型 int fputc(int c, FILE *fp); int putc(int c, FILE *fp); 参数 c :要输出到文件的字符 fp:文件指针 返回值 若成功,返回输出的字符 若失败,返回EOF,中科大C语言程序设计,fgetc/getc函数,函数原型 int

6、fgetc(FILE *fp); int getc(FILE *fp); 参数 fp:文件指针 返回值 若成功,返回输入的字符 若失败或文件结束,返回EOF,中科大C语言程序设计,fputc和fgetc函数举例,FILE *fp1, *fp2; char c; fp1 = fopen(, r); fp2 = fopen(, w); while(!feof(fp1) c = fgetc(fp1); fputc(c, fp2); fclose(fp1); fclose(fp2);,中科大C语言程序设计,fwrite和fread函数 (1),函数原型 size_t fwrite(void *buff

7、er, size_t size, size_t count, FILE *fp); size_t fread (void *buffer, size_t size, size_t count, FILE *fp);,中科大C语言程序设计,fwrite和fread函数 (2),参数 buffer:要读/写的数据块地址 size :要读/写的每个数据项的字节数 count :要读/写的数据项数量 fp :文件指针 返回值 若成功,返回实际读/写的数据项数量 若失败,一般返回0,中科大C语言程序设计,fwrite和fread函数举例,FILE *fp; int i; struct stud sNUM

8、; fp=fopen(students.dat,rb+); for (i=0; iNUM; i+) fwrite(s+i,sizeof(struct stud),1,fp); for (i=0; iNUM; i+) fread(s+i,sizeof(struct stud),1,fp); fclose(fp);,中科大C语言程序设计,fprintf和fscanf函数,函数原型 int fscanf(FILE *fp, char *format,address,.); int fprintf(FILE *fp, char *format,argument,.); 说明 与printf和scanf

9、函数类似 从文件输入或输出到文件,中科大C语言程序设计,utw函数,函数原型 int putw(int w, FILE *fp); 参数 w :要输出到文件的整数(字) fp:文件指针 返回值 若成功,返回输出的整数(字) 若失败,返回EOF,中科大C语言程序设计,getw函数,函数原型 int getw(FILE *fp); 参数 fp:文件指针 返回值 若成功,返回输入的整数(字) 若失败,返回EOF,中科大C语言程序设计,fputs函数,函数原型 int fputs(char *s, FILE *fp); 返回值 若成功,返回输出字符个数(或最后的字符) 若失败,返回EOF 说明 字符串

10、的结束标志0不会输出到文件 也不会在字符串末尾自动添加换行符,中科大C语言程序设计,fgets函数,函数原型 char *fgets(char *s, int n, FILE *fp); 返回值 若成功,返回s首地址;若失败,返回NULL 说明 从fp输入字符串到s中 输入n-1个字符,或遇到换行符或EOF为止 读完后自动在字符串末尾添加0,中科大C语言程序设计,文件的定位,文件位置指针 位置指针指向当前读写的位置 每次读写文件,位置指针都会相应移动 可以通过相关函数强制修改位置指针 相关函数 rewind函数 fseek函数 ftell函数,中科大C语言程序设计,rewind函数,函数原型

11、void rewind(FILE *fp); 参数 fp:文件指针 功能 使文件位置指针重新返回文件开头,中科大C语言程序设计,fseek函数 (1),函数原型 int fseek(FILE *fp, long offset, int whence); 参数 fp :文件指针 offset:偏移量 whence:起始位置 功能 随机改变文件的位置指针,中科大C语言程序设计,fseek函数 (2),起始位置 SEEK_SET(0):文件开始 SEEK_CUR(1):文件当前位置 SEEK_END(2):文件末尾 举例 fseek(fp, 100L, SEEK_SET); fseek(fp, -10L, SEEK_CUR); fseek(fp, -20L, SEEK_END);,中科大C语言程序设计,ftell函数,函数原型 long ftell(FILE *fp); 参数 fp:文件指针 返回值 若成功,返回当前文件指针位置 若出错,返回-1L,中科大C语言程序设计,结束,The End,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1