- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 第14讲 文件操作 本讲主要内容 文件的概念 文件类型指针 文件的打开与关闭 文件的读写 问题:x=10,y=x+3,y=? a=10 a=10; 制定算法 输入 计算 执行指令 保存程序 输出 程序执行过程 暂存数据 磁盘读写 14.1 文件的概念 文件(file):记录在磁盘上的数据集合,以文件名作为访问标识 类型 按文件所依附的介质来分:有磁盘文件、磁带文件等 按文件内容区分:源程序文件、目标文件、数据文件等 按数据编码格式区分:数据文件可分为ASCII码文件和二进制文件 ASCII码文件:又称为“文本文件”(text),其每一个字节存放一个ASCII码。优点:可编辑性好 二进制文件:又称“内存映像”文件,文件中每个数据格式与其在内存中存储结构相同。优点:节省存储空间 缓冲文件系统:操作系统在内存中为每一个正在使用的文件开辟一个读写缓冲区,又称为高级文件系统 非缓冲文件系统:操作系统不开辟读写缓冲区。由用户来开辟,称为低级文件系统 §14.2 文件类型指针 应用程序调用缓存文件系统中的某文件,需要以下信息 与该文件对应的内存缓冲区的地址 缓冲区中未被处理的字符串 文件操作方式等 文件当前的读写位置 缓冲文件系统会为每个文件设立一个“文件信息区”,在stdio.h中,它被定义为FILE类型数据 typedef struct { int _fd; //文件号 int _cleft; // 缓冲区中剩下的字节数 int _mode; // 文件操作模式 char * _nextc; //下一个字节的位置 char * _buff; //文件缓冲区位置 } FILE; §14.3 文件的打开与关闭 磁盘文件操作的3部曲 先打开 后读写 最后关闭 打开文件:以某种方式从磁盘上查找或创建指定文件,并获取该文件的FILE类型数据 FILE *fopen(const char *filename,const char *mode;) 其中,filename: 文件名;mode: 打开方式见下表,FILE *:返回值 如:FILE *fp; fp=fopen(“file1.txt”, “r”); 如果成功打开,返回一个指向被打开文件的文件信息区的起始地址;如果打开失败,返回一个NULL指针 §14.3 文件的打开与关闭 文件打开方式 含义 r(只读) 为输入打开一个文本文件 w(只写) 为输出打开一个文本文件 a(追加) 为追加打开一个文本文件 rb(只读) 为输入打开一个二进制文件 wb(只写) 为输出打开一个二进制文件 ab(追加) 为追加打开一个二进制文件 r+(读写) 为读/写打开一个文本文件(已有) w+(读写) 为读/写创建一个文本文件(能创建) a+(读写) 为读/写打开一个文本文件 rb+(读写) 为读/写打开一个二进制文件 wb+(读写) 为读/写创建一个二进制文件 ab+(读写) 为读/写打开一个二进制文件 §14.3 文件的打开与关闭 关闭文件的作用: (1)使文件指针fp与文件脱离 (2)刷新文件输入/输出缓冲区 关闭方法: fclose(fp); §14.4 文件的读写 fputc()/fgetc() int fputc(int c, FILE *fp); 把字符c写入文件fp,成功时返回字符c的ASCII码.失败时返回EOF(在stdio.h中,符号常量EOF的值等于-1) int fgetc(FILE *fp); 从文件fp中读1个字符,返回读得的字符。对文本文件,遇文件尾时返回EOF 对于二进制文件,可以用feof(fp) 判别是否遇文件尾。feof(fp)=1说明遇文件尾 从文本文件test.txt中顺序读入内容,并在屏幕上显示出来 从键盘输入一些字符,逐个把它们写入磁盘文件,直到输入#为止 例、将一个磁盘文件的内容复制到另一个磁盘文件 §14.4 文件的读写 fread()读文件(块读) size_t fread(void *buffer, size_t size, size_t count, FILE *fp); 从文件fp中读入count次、每次读size字节、读入的信息存在buffer缓冲区。函数返回值等于实际读入的次数(可能少于count)。失败返回0 fwrite()写文件(块写) size_t fwrite(void *buffer, size_t size, size_t count, FILE *fp); 将buffer中的信息、写入count次、每次写size字节至文件fp中。函数返回值等于实际写入的次数(可能少于count)。失败返回0
您可能关注的文档
最近下载
- 《增材制造》课件—02增材制造技术的常见工艺方法及其装备.pptx VIP
- 森林植被恢复费征收使用管理暂行办法.docx VIP
- 《明别集丛刊》第1辑目录.pdf VIP
- 药物的合成反应.ppt VIP
- 具身智能标准体系发展研究.docx VIP
- 2025年税务系统面试模拟试题及答案解析(70).doc VIP
- 基于核心素养的物理课堂教学设计和反思初中物理市公开课获奖课件省名师示范课获奖课件.pptx VIP
- 室外给排水专项施工方案.docx VIP
- 不定式、动名词、分词高频考点(解析版)-2025年上海中考英语专项复习.pdf VIP
- 2025年高速公路收费员岗位技能及理论知识考试题与答案.docx VIP
文档评论(0)