《C语言》第十二课.ppt.ppt

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《C语言》第十二课.ppt.ppt

* 第十二课 文件 文件的分类: 1.ASCII文件:又称文本文件,每字节存放一ASCII码,代表一个字符。 2.二进制文件:将内存中的数据按其在内存中的存储形式原样输出到磁盘上存放。 文件处理方法: 1.缓冲文件系统:系统自动在内存中为每一个正在使用的文件名开辟一个缓冲区(512B)。从内存向磁盘文件写数据必须先送到内存中的缓冲区,写满缓冲区后再一起送到磁盘上去;如果从磁盘文件向内存读入数据,则一次从磁盘文件中将一批数据读入到内存缓冲区,然后再将具体数据送到程序变量所占的内存中去,如果缓冲区中的数据没有需要的,系统会自动将磁盘中下一个扇区的数据读入到缓冲区覆盖原来的内容。 2.非缓冲文件系统:系统不自动开辟确定大小的缓冲 区,而由程序设计者决定。 每个被使用的文件都在内存中开辟一个区,用来存放文件的有关信息,这些信息保存在一结构体变量中,该结构体类型由系统定义,名为FILE。 12.1 文件类型指针 例如: FILE f[5]; FILE类型的数组 FILE *fp; 文件类型指针变量 12.2 文件的打开与关闭 1.文件的打开(fopen函数) 调用方式: FILE *fp; fp=fopen(文件名,使用文件方式); 例如:FILE *fp; fp=fopen(“d:\\sy_1.txt”,”r”); 文件打开包括三层含义: 1. 在内存中申请一块缓冲区,用于存放与文件交换的数据。 2. 申请FILE类型的一块存储区,存放文件的有关信息。 3. 如果文件打开成功,将函数的返回值赋给一个 FILE类型的指针变量,使文件类型指针变量指向该存储区;如果文件打开失败,则函数返回空指针值NULL,NULL是在stdio.h文件中定义的,值为 0。 常用下面方法打开一个文件: if(fp=fopen(“file1.c”,“r”)==NULL) { printf(“cannot open this file\n”); exit(0); } 2.文件的关闭(fclose函数) 调用方式: fclose(文件指针); FILE *fp; if(fp=fopen(“file1.c”, “r”)==NULL) { printf(“cannot open this file\n”); exit(0); } 对文件的相关操作 fclose(fp); /*关闭文件,fp不再指向该文件*/ 12.3 文件的读写 一、按字符方式读写 1. fputc函数 格式:fputc(ch,fp); 功能:写一个字符到磁盘文件。 返回值:输出成功返回值为所输出的字符; 输出失败则返回一个EOF,即为-1。 说明: EOF为stdio.h文件中定义的符号常量 2. fgetc函数 格式:ch=fgetc(fp); 功能:从指定文件读一个字符。 返回值:带回一个字符赋给ch.若遇到文件结 束符,返回文件结束标志EOF. 说明: 读入一字符后,文件位置指针下移,指向 文件中下一个字符位置 . 文件结束与否的判定: 1. 以文本方式打开的文件,可以根据fgetc()函数的返回值是否为EOF来判定. 2. 以二进制方式打开的文件,可以用feof()检测文件是否结束. feof函数: 一般形式: feof(fp) 功能: 判断fp所指向的文件是否结束. 返回值: 若文件结束返回1,否则返回0. 说明: 该函数也可用来检测文本文件是否结束. 程序举例: 将键盘读入的字符送到磁盘文件中. #includestdio.h main() {FILE *fp; char ch,filename[10]; scanf(“%s”,filename); if((fp=fopen(filename,”w”))==NULL) {printf(“cannot open this file\n”); exit(0);} ch=getchar(); while(ch!=‘#’) {fputc(ch,fp); putchar(ch); ch=getchar();} fclose(fp);} 二、文件的块读写函数 1. fread(buffer,size,count,fp); 读一个数据块函数. 2. fwrite(buffe

文档评论(0)

170****0532 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8015033021000003

1亿VIP精品文档

相关文档