中国科技大学电子科学与技术系:《C语言程序设计》 第10章 文件操作

第10章文件操作 白雪飞 baixfaustc. edu.cn 中国科学技术大学电子科学与技术系 Dept of Elec. Sci. Tech, USTC Fal22003
白 雪 飞 baixf@ustc.edu.cn 中国科学技术大学电子科学与技术系 Dept. of Elec. Sci. & Tech., USTC Fall, 2003 第10章 文件操作

录 文件概述 ●文件类型指针 文件的打开和关闭 文件的读写 文件的定位 C语言程序设计-第10章文件操作2
C语言程序设计 - 第10章 文件操作 2 目 录 ⚫ 文件概述 ⚫ 文件类型指针 ⚫ 文件的打开和关闭 ⚫ 文件的读写 ⚫ 文件的定位

文件(File) ●C语言中的文件 C语言把文件看作一个字节的序列 ■C语言对文件的存取是以字节为单位的 文本文件(ASCI文件) 按数据的ASCI形式存储 二进制文件 ■按数据在内存中的二进制形式存储 C语言程序设计-第10章文件操作
C语言程序设计 - 第10章 文件操作 3 文件 (File) ⚫ C语言中的文件 ◼ C语言把文件看作一个字节的序列 ◼ C语言对文件的存取是以字节为单位的 ⚫ 文本文件(ASCII文件) ◼ 按数据的ASCII形式存储 ⚫ 二进制文件 ◼ 按数据在内存中的二进制形式存储

文本文件和二进制文件 内存存储形式 ASCI形式 00010111 10010110 (6)|00110110 二进制形式 (0)1001100 (6038) 3) 00010111 (8)1001100 010110 C语言程序设计-第10章文件操作4
C语言程序设计 - 第10章 文件操作 4 文本文件和二进制文件 00010111 10010110 00010111 10010110 00110110 00110000 00110011 00111000 (6038) (‘6’) (‘0’) (‘3’) (‘8’) ASCII形式 二进制形式 内存存储形式

缓 冲中 文 件 系 统 輪出文件缓冲区 程序数据区 磁盘 输 入 件 缓 冲 区 C 程 百 序 第 章 文 件 操 作
C语言程序设计 - 第10章 文件操作 5 缓冲文件系统 程序数据区 输出文件缓冲区 输入文件缓冲区 磁盘 输 输 输 输 输 输 输 输

文件类型指针 FIE类型 保存被使用的文件的有关信息 ■所有的文件操作都需要F工工E类型的指针 ■F工E是库文件中定义的结构体的别名 注意不要写成 struct FILE ●举例 ■E工LE*fp; C语言程序设计-第10章文件操作6
C语言程序设计 - 第10章 文件操作 6 文件类型指针 ⚫ FILE类型 ◼ 保存被使用的文件的有关信息 ◼ 所有的文件操作都需要FILE类型的指针 ◼ FILE是库文件中定义的结构体的别名 ◼ 注意不要写成struct FILE ⚫ 举例 ◼ FILE *fp;

FILE类型 typedef struct t shor七 1eve1;/*缓冲区满空程度*/ unsigned f1ags;/*文件状态标志*/ char fd /*文件描述符* unsigned char ho1d;/*无缓冲则不读取字符*/ short bsize;/*缓冲区大小*/ unsigned char* buffer;/*数据缓冲区*/ unsigned char*curp;/*当前位置指针*/ unsigned istemp;/*临时文件指示器* shor七 token;/*用于有效性检查* }E工LE; C语言程序设计-第10章文件操作7
C语言程序设计 - 第10章 文件操作 7 FILE类型 typedef struct { short level; /*缓冲区满空程度*/ unsigned flags; /*文件状态标志*/ char fd; /*文件描述符*/ unsigned char hold; /*无缓冲则不读取字符*/ short bsize; /*缓冲区大小*/ unsigned char *buffer; /*数据缓冲区*/ unsigned char *curp; /*当前位置指针*/ unsigned istemp; /*临时文件指示器*/ short token; /*用于有效性检查*/ } FILE;

文件的打开( fopen函数) 函数原型 FILE *fopen(char *filename char *mode) 参数说明 filename:要打开的文件路径 ■mode :打开模式 返回值 ■若成功,返回指向被打开文件的指针 ■若出错,返回空指针NUL(0) C语言程序设计-第10章文件操作8
C语言程序设计 - 第10章 文件操作 8 文件的打开 (fopen函数) ⚫ 函数原型 ◼ FILE *fopen(char *filename, char *mode); ⚫ 参数说明 ◼ filename:要打开的文件路径 ◼ mode :打开模式 ⚫ 返回值 ◼ 若成功,返回指向被打开文件的指针 ◼ 若出错,返回空指针NULL(0)

文件的打开模式 打开模式 描述 只读,打开已有文件,不能写 只写,创建或打开,覆盖已有文件 a 追加,创建或打开,在已有文件末尾追加 读写,打开已有文件 读写,创建或打开,覆盖已有文件 a+读写,创建或打开,在已有文件末尾追加 七 按文本方式打开(缺省) b按二进制方式打开 C语言程序设计-第10章文件操作9
C语言程序设计 - 第10章 文件操作 9 文件的打开模式 打开模式 描 述 r 只读,打开已有文件,不能写 w 只写,创建或打开,覆盖已有文件 a 追加,创建或打开,在已有文件末尾追加 r+ 读写,打开已有文件 w+ 读写,创建或打开,覆盖已有文件 a+ 读写,创建或打开,在已有文件末尾追加 t 按文本方式打开 (缺省) b 按二进制方式打开

文件的打开举例 E工LE*fp1,*fp2,*fp3; char filename [l="file3. dat"i /*以文本只读方式打开i1e1*/ if(!(fpl=fopen("filel","r)))[ printf(" Cannot Open This File!\n")i exit(0);/*退出程序*/ /*以二进制读写方式打开F工E2.Tx*/ fp2=fopen ("C:\HOME\\FILE2. TXT","rb+)i /*以二进制读写方式打开£i1e3.dat*/ fp3=fopen(filename, " a+b")i C语言程序设计-第10章文件操作10
C语言程序设计 - 第10章 文件操作 10 文件的打开举例 FILE *fp1, *fp2, *fp3; char filename[]="file3.dat"; /* 以文本只读方式打开file1 */ if (!(fp1=fopen("file1", "r"))) { printf("Cannot Open This File!\n"); exit(0); /* 退出程序 */ } /* 以二进制读写方式打开FILE2.TXT */ fp2=fopen("C:\\HOME\\FILE2.TXT", "rb+"); /* 以二进制读写方式打开file3.dat */ fp3=fopen(filename, "a+b");
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 中国科技大学电子科学与技术系:《C语言程序设计》 第9章 位运算.ppt
- 中国科学技术大学:《并行计算 Parallel Computing》课程教学资源(PPT课件讲稿)第三篇 并行数值算法 第九章 稠密矩阵运算.ppt
- 中国科学技术大学:《并行计算 Parallel Computing》课程教学资源(PPT课件讲稿)第三篇 并行数值算法 第八章 并行数值算法.ppt
- 中国科学技术大学:《并行计算 Parallel Computing》课程教学资源(PPT课件讲稿)第二篇 并行算法的设计 第七章 并行算法的一般设计过程.ppt
- 中国科学技术大学:《并行计算 Parallel Computing》课程教学资源(PPT课件讲稿)第二篇 并行算法的设计 第六章 并行算法的基本设计技术.ppt
- 中国科学技术大学:《并行计算 Parallel Computing》课程教学资源(PPT课件讲稿)第二篇 并行算法的设计 第五章 并行算法的一般设计方法.ppt
- 中国科学技术大学:《并行计算 Parallel Computing》课程教学资源(PPT课件讲稿)第二篇 并行算法的设计 第四章 并行算法的设计基础.ppt
- 中国科学技术大学:《并行计算 Parallel Computing》课程教学资源(PPT课件讲稿)第四篇 并行程序设计 第十五章 并行程序设计环境与工具.ppt
- 中国科学技术大学:《并行计算 Parallel Computing》课程教学资源(PPT课件讲稿)第四篇 并行程序设计 第十四章 分布存储系统并行编程.ppt
- 中国科学技术大学:《并行计算 Parallel Computing》课程教学资源(PPT课件讲稿)第四篇 并行程序设计 第十三章 共享存储系统编程.ppt
- 中国科学技术大学:《并行计算 Parallel Computing》课程教学资源(PPT课件讲稿)第四篇 并行程序设计 第十二章 并行程库设计基础.ppt
- 中国科学技术大学:《并行计算 Parallel Computing》课程教学资源(PPT课件讲稿)第三篇 并行数值算法 第十一章 快速傅里叶变换.ppt
- 中国科学技术大学:《并行计算 Parallel Computing》课程教学资源(PPT课件讲稿)第三篇 并行数值算法 第十章 线性方程组的求解.ppt
- 中国科学技术大学:《并行计算 Parallel Computing》课程教学资源(PPT课件讲稿)第一篇 并行计算的基础 第一章 并行计算机系统及结构模型、第二章 当代并行机系统、第三章 并行计算性能评测.ppt
- 中国科学技术大学:《并行计算 Parallel Computing》课程教学资源(PPT课件讲稿)课程简介(英文).ppt
- 广东工业大学:《计算机操作系统》课程电子教案(PPT教学课件)课程简介(主讲:傅秀芬).ppt
- 广东工业大学:《计算机操作系统》课程电子教案(PPT教学课件)第九章 系统安全性.ppt
- 广东工业大学:《计算机操作系统》课程电子教案(PPT教学课件)第八章 网络操作系统.ppt
- 广东工业大学:《计算机操作系统》课程电子教案(PPT教学课件)第七章 作业管理与OS接口.ppt
- 广东工业大学:《计算机操作系统》课程电子教案(PPT教学课件)第六章 文件管理概论.ppt
- 中国科技大学电子科学与技术系:《C语言程序设计》 第一章 C语言程序设计概述.ppt
- 中国科技大学电子科学与技术系:《C语言程序设计》 第1章(1-2) C语言的程序结构.ppt
- 中国科技大学电子科学与技术系:《C语言程序设计》 第2章 数据类型、运算符和表达式.ppt
- 中国科技大学电子科学与技术系:《C语言程序设计》 第3章 C语言的基本语句 和程序结构设计.ppt
- 中国科技大学电子科学与技术系:《C语言程序设计》 第4章 数组.ppt
- 中国科技大学电子科学与技术系:《C语言程序设计》 第5章 函数.ppt
- 中国科技大学:电子科学与技术系《C语言程序设计》 第6章 预处理.ppt
- 中国科技大学:电子科学与技术系《C语言程序设计》 第7章 指针.ppt
- 中国科技大学:电子科学与技术系《C语言程序设计》 第8章 结构体.ppt
- 《电子商务实用教程》课程教学资源(PPT课件讲稿)第一章 电子商务概述.ppt
- 《电子商务实用教程》课程教学资源(PPT课件讲稿)第二章 Internet商务.ppt
- 《电子商务实用教程》课程教学资源(PPT课件讲稿)第三章 EDI商务.ppt
- 《电子商务实用教程》课程教学资源(PPT课件讲稿)第四章 企业电子商务应用.ppt
- 《电子商务实用教程》课程教学资源(PPT课件讲稿)第五章 网上支付与安全交易.ppt
- 《电子商务实用教程》课程教学资源(PPT课件讲稿)第六章 网络营销.ppt
- 《电子商务实用教程》课程教学资源(PPT课件讲稿)第七章 电子商务与物流.ppt
- 《电子商务实用教程》课程教学资源(PPT课件讲稿)网站设计(案例:艺海拾贝).ppt
- 高等学校计算机教材:《Visual Basic 6.0》课程教学资源(PPT课件讲稿)第一章 概述.ppt
- 高等学校计算机教材:《Visual Basic 6.0》课程教学资源(PPT课件讲稿)第七章 数组.ppt
- 高等学校计算机教材:《Visual Basic 6.0》课程教学资源(PPT课件讲稿)第三章 简单VB程序设计.ppt