- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
項目12文件
12.4.3 返回文件当前位置的函数ftell() 由于文件的位置指针可以任意移动,也经常移动,因而往往容易迷失当前位置,ftell()就可以解决这个问题。ftell()函数的用法如下: long ftell(文件指针); 其功能是:返回文件位置指针的当前位置(用相对于文件头的位移量表示)。如果返回值为-1L,则表明调用出错。例如: offset=ftell(fp); if(offset== -1L)printf(ftell() error\n); 12.5 本 章 小 结 1.文件是指存放在外部存储介质上的数据集合。为标识一个文件,每个文件都必须有一个文件名,其一般结构为 主文件名[.扩展名] 凡是需要长期保存的数据,都必须以文件形式,保存到外部存储介质上(硬盘、软盘或磁带等)。 2.在C语言中,根据文件的存储形式,将文件分为ASCII(阿斯柯依)码文件和二进制文件。ASCII码文件又称文本文件,它的每一个字节存储一个ASCII码值(代表一个字符): C语言中的文件是由一个一个的字符(或字节)组成的。对这种流式文件的存取操作,也是以字符(或字节)为单位进行的。 3.通过系统定义的文件结构类型FILE(必须大写),可定义指向已打开文件的文件指针变量。通过这个文件指针变量,可实现对文件的读/写操作和其他操作。 4.对文件进行操作之前,必须先用fopen()库函数打开该文件;使用结束后,应立即用fclose()库函数关闭,以免数据丢失。函数用法如下: FILE*fopen(文件名,操作方式); int fclose(FILE,文件指针); 在程序开始运行时,系统自动打开三个标准文件,并分别定义了文件指针:标准输入文件——stdin,标准输出文件——stdout,标准错误文件——stderr。 5.读/写文件中的一个字符——fgetc()函数和fputc()函数: int fputc(字符数据,文件指针); int fgetc(文件指针); 在对ASCII码文件执行读入操作时,如果遇到文件尾,则读操作函数返回一个文件结束标志EOF(-1)。在对二进制文件执行读入操作时,必须使用库函数feof()来判断是否遇到文件尾: int feof(文件指针); feof()库函数也适用于ASCII码文件。 6.读/写文件中的一个字符串——fgets()函数和fputs()函数: int fputs(字符串,文件指针); char *fgets(字符数组/指针,字符串长度+1,文件指针); fgets()、fputs()函数与gets()、puts()函数的功能相似,只是操作对象不同:fgets()和fputs()函数以指定文件为操作对象,而gets()和puts()函数却是以标准输入(stdin)/输出(stdout)文件为操作对象。 7.读/写文件中的一个数据块——fread()函数和fwrite()函数: int fread(void *buffer,int size,int count,FILE *fp); int fwrite(void *buffer,int size,int count,FILE *fp); fread()和fwrite()函数一般用于二进制文件的处理。 8.对文件进行格式化读/写——fscanf()函数和fprintf()函数: int fscanf(文件指针,格式符,输入变量首地址表); int fprintf(文件指针,格式符,输出参量表); 与scanf()和printf()函数的功能相似,它们都是格式化输入/输出函数。区别在于:fscanf()和fprintf()函数的操作对象是指定文件,而scanf()和printf()函数的操作对象是标准输入(stdin) /输出(stdout)文件。 9.对于流式文件,也可随机读/写,关键在于通过调用fseek()或rewind()函数,将位置指针移动到需要的地方: int fseek(文件指针,位移量,参照点); int rewind(文件指针); 10.返回文件位置指针的当前位置——ftell()库函数 long ftell(文件指针); 11.?在调用输入/输出库函数时,如果出错,除了函数返回值有所反映外,也可利用ferror()函数来检测: int ferror(文件指针) 12.将文件错误标志和文件结束标志置0——?clearerr()库函数: void clearerr(文件指针); 习 题 1.简答题 (1) 什么是文件? C语言的文件有什么特点? (
文档评论(0)