07-2基于C函数的文件编程.pptVIP

  1. 1、本文档共29页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
07-2基于C函数的文件编程

引言 文件编程有两种途径: 基于Linux系统调用; 基于C库函数。 文件操作有新建、打开、读写和关闭,对随机文件还可以定位。 其中b用于区分二进制文件和文本文件,这一点在DOS、Windows系统中是有区分的,但Linux不区分二进制文件和文本文件。 文件的分类 系统在stdio.h中定义,存储文件的信息。 在程序中一定不要直接存取FILE结构中的任何成员,它们提供给标准I/O函数使用。 为标准I/O存取打开一个文件,都有一个FILE结构被创建,并且一个指向该结构的指针被返回,在程序中通过该指针对文件操作。 定义FILE型指针: FILE *fp; C语言中文件的使用 文件的打开 文件打开方式 文件打开程序框架 文件的关闭 文件操作程序框架 文件读写的基本方式 字符 I/O 字符I/O——读文件 字符 I/O——写文件 #include stdio.h main() {FILE *in, *out; char ch, infile[10], outfile[10]; /*输入文件名*/ ...... if((in=fopen(infile, r))==NULL) {printf(can not openinfile\n);exit(0);} if((out=fopen(outfile, w))==NULL) {printf(can not open outfiel\n);exit(0);} while(!feof(in)) fputc(fgetc(in), out); fclose(in); fclose(out); } 数据块 I/O 数据块I/O举例 格式化I/O 行式 I/O 式式I/O举例 文件的读写位置 rewind 函数 fseek 函数 ftell 函数 void main() {int i; FILE *fp; if((fp=fopen(stu_list, rb))==NULL) {printf(can not open file\n); return;} for(i=0; i4 ; i++) { fseek(fp,i*sizeof(struct student),0); if(fread(stud[i].name, 10*sizeof(char), 1, fp)!=1) printf(file read error\n); } fclose(fp); for(i=0;i4;i++) printf(%10s, stud[i].name); } * * 文 件 1 C文件概述 2 文件类型指针 3 打开与关闭 4 文件的读写 5 文件的定位 1 C文件概述 存储在外部介质上的数据集合—文件。 操作系统以文件为单位对数据进行存取。 C语言把文件看作是一个字符(字节)序列,即:由一个一个字符(字节)数据顺序组成。 主要区别 内存中的数据(各种变量)是临时的 文件中的数据是永久性的 使用数据文件的目的 1、数据文件的改动不引起程序的改动——程序与数据分离 2、不同程序可以访问同一数据文件中的数据——数据共享 3、能长期保存程序运行的中间数据或结果数据 按数据的组织形式 文本文件:ASCII文件,每个字节放一个字符的ASCII码 二进制文件:按数据在内存中的存储形式原样存放 便于处理和输出字符,但存储空间大,需要额外的转换时间 节省空间和转换时间,但不能直接输出字符形式 整数10000在内存中和不同组织的文件中的存储方式00010000 二进制形式(2个字节)00010000 内存中( 2个字节)0011000000110000ASCII形式( 5个字节) ‘1’ ‘0’ ‘0’ ‘0’ ‘0’ 数据的组织形式 213+210+29+28+24=10000 2 文件类型指针 结构体类型 FILE typedef struct{ short level; /*缓冲区“满”或“空”的程度*/ unsigned flags; /*文件状态标志*/ char fd; /*文件描述符*/ unsigned char hold; /*如无缓冲区不读取字符*/ short bsize; /*缓冲区的大小*/ unsigned char *buffer; /*数据缓冲区的位置*/ unsigned char *cu

文档评论(0)

qwd513620855 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档