C语言程序设计 课件 ch10.pptx

  1. 1、本文档共33页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
文件 演讲者 someone@email.address xxxx年xx月xx日 文件的概念 基本概念操作系统以文件为单位对数据进行管理文件指存储在外部介质中的一组数据的有序集合从外部介质中将数据文件装入内存的操作,称为“读”操作从内存中将数据输出到文件中的操作,称为“写”操作 文件的分类根据数据组织形式文本文件:以字符ASCII码值进行存储与编码的文件,其文件内容就是字符如:C语言源程序二进制文件:存储二进制数据的文件如:目标文件和可执行文件根据文件缓冲特性缓冲文件系统:系统自动为每一个文件分配一块文件内存缓冲区非缓冲文件系统:文件缓冲区需要编程者在程序中手工实现分配 文件结构和文件指针 文件结构FILE是C语言为了具体实现对文件的操作而定义的一个包含文件操作相关信息的结构类型在stdio.h中定义typedef struct { short level; /*缓冲区“满”或“空”的程度*/ unsigned flags; /*文件状态标志*/ char fd; /*文件描述符*/ unsigned char hold; /*如无缓冲区不读取字符*/ short bsize; /*缓冲区的大小*/ unsigned char *buffer; /*数据缓冲区的位置*/ unsigned char *curp; /*指针,当前的指向*/ unsigned istemp; /*临时文件,指示器*/ short token; /*用于有效性检查*/ } FILE; FILE类型用法C语言文件操作统一以文件指针方式实现如:FILE *fp; // 文件指针一般只要使用文件指针fp,用fp代表文件整体不能进行fp++或*fp等操作文件操作具有顺序性特点前一个数据取出后,下一次将顺序取出后一个数据,fp-curp会自动发生改变一般步骤定义文件指针打开文件,文件指针指向磁盘文件缓冲区文件处理,进行文件读写操作关闭文件 文件常用操作 打开文件FILE *fopen(const char *filename, const char *mode);filename为文件名mode为文件打开方式若文件顺利打开,则返回指向该文件的文件指针否则返回NULL,并把错误代码存在error中一旦文件打开,对该文件的操作方式就被确定,并且直至文件关闭都不变允许同时打开多个文件,不同文件采用不同文件指针,但不允许同一文件在关闭前再次被打开 关闭文件int fclose(FILE *fp);fp为之前用fopen打开的文件指针文件关闭成功,该函数返回0,否则返回EOF(End of File,表示文件末尾)当文件操作结束时通过关闭文件操作,能强制把缓冲区的数据写入磁盘,确保写文件正常完成 删除文件int remove(const char *filename);filename为文件名,而非文件指针若成功返回0,否则返回非0如:remove(example.txt); 重命名文件int rename(const char *old, const char *new);old为旧文件名、new为新文件名若成功返回0,否则返回非0如:rename(oldexample.txt, newexample.txt);注意:在删除或重命名文件之前,必须先关闭该文件,否则操作会失败 文件读写 字符读写函数从指定文件中读取一个字符:int fgetc(FILE *fp);fp为文件指针读取成功时返回读取到的字符,读取到文件末尾或读取失败时返回EOF向文件中写一个字符:int fputc(int ch, FILE *fp);ch为要写入的字符,fp为文件指针写入成功时返回写入的字符,失败则返回EOF 综合实例1编写程序,打开d盘根目录下的example.txt文件,将其内存拷贝到另一个文件newexample.txt分析需要声明两个文件指针,一个文件只读,一个文件只写依次从一个文件中读入字符写入另一个文件,直到文件结束 int main() { FILE *infile, *outfile; int ch; infile = fopen(d:\\example.txt, r); // 以“只读”、“文本”方式打开 outfile = fopen(d:\\newexample.txt, w); // 以“写入”、“文本”方式打开 while ((ch = fgetc(infile)) != EOF) fputc(ch, outfile); fclose(infile); fclose(outfile); retur

文档评论(0)

balala11 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档