- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第15讲 文件 内容提要 文件概述 标准文件操作 文件概述(1) 文件是指存放在外存储器上的信息的集合 数据文件的存储形式 文本文件(ASCII文件) 按数据的ASCII形式存储:每一个字节放一个ASCII码,代表一个字符。 二进制文件 按数据在内存中的二进制形式存储 文件概述(2) 文本文件和二进制文件 标准文件与非标准文件 利用缓冲区将对磁盘文件的频繁逐次访问变为批量访问的做法称为标准文件操作 文件的存取方式 标准I/O提供了4种文件存取方法 读写一个字符 读写一个字符串,将多个字符组成的字符串写入文件或从文件中读出。 格式化读写,根据格式控制指定的数据格式对数据进行转换存取。 成块读写,也称做按记录读写。 4种存取方式和C语言的对应的函数关系: 标准文件FILE结构指针 标准文件系统为每一个文件定义一个FILE型的结构体变量, 一般定义在stdio.h头文件中。 FILE类型 保存被使用的文件的有关信息 所有的文件操作都需要FILE类型的指针 FILE是库文件中定义的结构体的别名 注意不要写成struct FILE 举例 FILE *fp; 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 *fp1, *fp2; /* 以文本只读方式打开file1 */ if (!(fp1=fopen(“file1”, “r”))) /*if(((fp=fopen(“file1”,”r”))==NULL)*/ { printf(Cannot Open This File!\n); exit(1); /* 退出程序 */ } /* 以二进制读写方式打开FILE2.TXT */ fp2=fopen(C:\\HOME\\FILE2.TXT, rb+); 文件的关闭 (fclose函数) 函数原型 int fclose(FILE *fp); 参数说明 fp:要关闭的文件指针 返回值 若成功,返回0 若出错,返回非零值 不用的文件应关闭,防止数据破坏丢失 文件的关闭举例 FILE *fp; If(fclose(fp)!=0) { printf( file cannot close\n); exit(1); } else Printf(“File is now close\n”); 读写操作(1) 读写文件中字符的函数 :这类函数每执行一次,只能读写文件中的一个字符。 从磁盘文件读取字符的函数是fgetc(),形式为: int fgetc (FILE *fp); 参数:fp:文件指针 若成功,返回输入的字符 若失败或文件结束,返回EOF 从键盘输入字符,写入到磁盘文件datafile1.txt中 #include stdio.h main() { FILE *fp; char ch; if((fp = fopen (d:\\datafile1.txt,w)) == NULL ) { printf (file cannot be opened \n ); exit (1); } while ((ch = fgetc (stdin)) !=\n) fputc (ch,fp); fclose (fp); } 读写操作(2) 读写文件中字符串的函数 : 从磁盘文件读取字符串的函数是fgets(),形式为: char * fgets (char * str ,int n ,FILE * fp) 功能:从指针fp指定的文件中读取n-1个字符,把它送到由指针str所指向的字符数组中。 说明:fgets()函数读完指定的n-1个字符自动添加一个串结束符并返回;若不足n-1个字符就遇到‘\n’或
文档评论(0)