C语言程序设计 清华大学郑莉安颖莲 第十讲」 文件 参考书《C程序设计》第十二章 Page 1
C语言程序设计 清华大学 郑莉 安颖莲 Page 1 第十讲 文件 参考书《C程序设计》第十二章
C语言程序设计 清华大学郑莉安颖莲 本讲主要内容 。文件的概念 ·文件结构体及文件指针 ·与文件操作有关的函数 ·综合举例 Page 2
C语言程序设计 清华大学 郑莉 安颖莲 Page 2 本讲主要内容 • 文件的概念 • 文件结构体及文件指针 • 与文件操作有关的函数 • 综合举例
C语言程序设计 清华大学郑莉安颖莲 文件的概念 文件: -文件是磁盘上数据的集合。C语言的文件是流式文件。 ·文件结构体及文件指针 -文件结构体是由系统定义的,在stdio.h中定义: struct iobuf char FAR ptr; int _cnt; char FAR base; char _flag; char file;} typedef struct iobuf FILE; 其中集合了处理文件所需的各种有关信息:文件当前的读写位置、 文件当前位置到文件尾之间的数据个数、该文件读写缓冲区位置、 出错标志、该文件是已打开的第几个文件。 -文件(结构体)指针: FILE*文件指针名 Page 3
C语言程序设计 清华大学 郑莉 安颖莲 Page 3 文件的概念 • 文件: - 文件是磁盘上数据的集合。 C 语言的文件是流式文件。 • 文件结构体及文件指针 - 文件结构体是由系统定义的,在 stdio.h 中定义: struct _iobuf { char _FAR_ *_ptr; int _cnt; char _FAR_ *_base; char _flag; char _file; }; typedef struct _iobuf FILE; 其中集合了处理文件所需的各种有关信息:文件当前的读写位置、 文件当前位置到文件尾之间的数据个数、该文件读写缓冲区位置、 出错标志、该文件是已打开的第几个文件。 - 文件(结构体)指针: FILE *文件指针名
C语言程序设计 清华大学郑莉安颖莲 文件位置指针的定位 。由文件打开方式确定: “r”“w”:指向文件头 “a”:指向文件尾 ·库函数 void rewind (FILE *fp) 将文件的位置指针置于文件开头 ·库函数fseek Page 4
C语言程序设计 清华大学 郑莉 安颖莲 Page 4 文件位置指针的定位 • 由文件打开方式确定: “r”“w”:指向文件头 “a”:指向文件尾 • 库函数 void rewind(FILE *fp) 将文件的位置指针置于文件开头 • 库函数 fseek
C语言程序设计 清华大学郑莉安颖莲 fopen include:<stdio.h> 语法:FILE*fopen (文件名,“访问模式”); 参数: 文件名:字符串。(包括路径名) 访问模式: a:追加,若文件不存在,则创建新文件。 a+:同a,但可读。 r:读,若文件不存在,则失败。 r+:同r,但可写。 W:写,创建新文件,若已有同名文件存在则被破坏。 W+:同w,但可读。 t:文本方式。读入时,CR-LF转换为LF,写时,LF转换为 CR-LF,CTRL+Z作为文件结束。文件以读或读、写方式打开时, 去除CTRL+Z。 b:二进制方式,不做上述转换。 Page 5
C语言程序设计 清华大学 郑莉 安颖莲 Page 5 fopen include: <stdio.h> 语法:FILE *fopen (文件名,“访问模式”); 参数: 文件名:字符串。(包括路径名) 访问模式: a:追加,若文件不存在,则创建新文件。 a+:同a,但可读。 r:读,若文件不存在,则失败。 r+:同r,但可写。 w:写,创建新文件,若已有同名文件存在则被破坏。 w+:同w,但可读。 t:文本方式。读入时,CR-LF 转换为 LF,写时,LF 转换为 CR-LF, CTRL+Z 作为文件结束。文件以读或读、写方式打开时, 去除CTRL+Z。 b:二进制方式,不做上述转换