第8章 C语言程序设计文件精选.pptVIP

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

每一个被使用的文件都在内存中开辟一个区域,用来存放文件的有 关信息。这些信息是保存在一个结构体类型的变量中的。该结构体类型 的名称为FILE,其定义如下: typedef struct { int _fd; 文件号 int _cleft; 缓冲区中剩下的字符 int _mode; 文件操作模式 char * _nextc; 下一个字符位置 char * _buff; 文件缓冲区位置 }FILE; 有了FILE类型之后,我们就可以用它来定义文件类型的变量、 数组和指针。如: FILE fp[256]; 定义了一个结构体数组 fp,包含256个元素。 FILE *fp; 定义了一个指向FILE类型结构体的指针变量fp。有了这 个定义之后,就可以用它指向一个文件,然后通过它来实现对文件 的访问。 对文件的操作无非是: ①文件的打开 ②文件的关闭 ③文件的读 ④文件的写 这四个操作。在C语言中使用专门的库函数来完成。 一.文件的打开 使用fopen()函数来实现打开文件,而且在调用fopen()之前,需 先定义一个FILE类型的指针。一般使用格式如下: FILE *fp; fp=fopen(“文件名”, “打开方式”); 通过这一条语句,就使得fp与“文件名”所指定的文件建立起了联系。 说明: 1.文件名必须是文件的全名。 2.打开方式如下表所示 在上述列出的打开方式中,并非所有的C语言版本都完全提供。因 此在使用是要注意所使用的版本的规定。 3.在使用fopen()时,如果打开不成功,将会返回一个错误信息, 即空指针值(NULL),在stdio.h文件中被定义为0。 造成错误的原因很多:用”r”方式打开一个不存在的文件;磁盘出 故障;磁盘写保护或已满无法建立新文件等。因此常用下面的方法进行 检测。 If ((fp=fopen(“lx.doc”,r”)==NULL) { Printf(“connot open this file!\n”); Exit(0); } 二.文件的关闭 在使用完一个文件之后,要养成关闭文件的习惯,否则将会造成数 据丢失。因为在向文件写数据时,是先将数据输出到缓冲区,待缓冲区 满后才正式输出到外存中的文件。如果当数据未充满缓冲区而程序结束 运行,就会将缓冲区中的数据丢失。 在C语言中使用fclose()来关闭文件。其含义就是切断文件指针和 文件之间的联系。其一般使用格式为: fclose(文件指针); 如:fclose(fp); fclose()函数也有返回值:当成功地执行了关闭操作时,返回值为 0,如果返回值为非0值,则表示关闭时有错误。 三.文件的读写 当一个文件打开之后,就可以对它进行读写(又称之为访问)了。 常用的函数如下: 1.fgetc()和 fputc()(或者putc()和 getc()) ▲fputc():把一个字符写到磁盘文件上去。 一般使用形式为:fputc(ch,fp); 其中:ch ---要输出的字符变量 fp----已定义的文件指针 当fputc()的返回值为EOF(即 –1)时,表明输出失败;否则返回 要输出的字符。 应用举例:用C语言编程实现操作系统中的文件复制命令。 copy 源文件名 目标文件名 #include stdio.h main(argc,argv) { FILE *in, *out; char ch; if(argc!=3) { printf(“please enter file name!\n”); exit(0); } if((in=fopen(argv[1],”r”)==NULL) { printf(“ source file is not exsit\n”); exit(0); } if((out=fopen(argv[2],”w”)==NULL) { print

文档评论(0)

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

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

1亿VIP精品文档

相关文档