- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
检查错误函数 通过前面的学习知道,在调用各种输入输出函数的时候,如果出现错误,可以从函数的返回值中得到反映。但事实上,大多数标准输入输出函数并不具有明确的出错信息返回值。例如,调用fputc函数时返回值是EOF,它可能表示文件结束,也可能表示调用失败而出错。调用fgets函数时如果返回NULL,它可能是文件结束,也可能是出错。为了明确地检查是否出错,C语言提供一些函数用来检查输入输出函数调用中的错误。 函数名: feof功 能: 检测流上的文件结束符用 法: int feof(FILE *stream); feof(fp)有两个返回值:如果遇到文件结束,函数feof(fp)的值为1,否则为0。EOF是文件结束标志的文件。在文本文件中,数据是以字符的ASCⅡ代码值的形式存放,ASCⅡ代码的范围是0到255,不可能出现-1,因此可用EOF作为文件结束标志。当把数据以二进制形式存放到文件中时,就会有-1值的出现,因此不能采用EOF作为二进制文件的结束标志。为解决这一个问题,ASCI C提供一个feof函数,用来判断文件是否结束。feof函数既可用以判断二进制文件又可用以判断文本文件。 ferror函数 ferror函数作用:可以进行输入输出函数调用中的出错检查。形式:ferror(fp); (1)如果函数返回值为0,则表示未出错;如果返回非零值,则表示出错。(2)在调用fopen函数时,也就是试图打开文件的时候,系统会自动使相应文件的ferror函数的初值为零。(3)每调用一次输入输出的函数后,都有一个ferror函数值与之对应。如果想检查调用输入输出函数是否出错,应在调用该函数后立即测试ferror函数的值,否则该值会丢失(ferror函数反映的是最后一个输入输出函数调用的出错状态)。 输入输出字符串 在C系统中,输入和输出一个字符串的操作可以用fgets函数和fputs函数来实现,其中fgets函数用来读入一个字符串,而fputs函数用来输出一个字符串。 利用fgets函数实现字符串的读入 fgets(字符数组,读取到字符数组中的字节数,文件指针变量); 例如:fgets (str,n,fp); 在上例,从指针fp指向的文件中读取n?1个字符(注意不是n个字符),并把它放到字符数组str中。如果在读入n?1个字符完成之前遇到换行符\n或文件结束符EOF,则结束读入并将遇到的换行符\n也作为一个字符送入str数组。系统最后会在读入的字符串之后自动加一个\0,因此送到字符数组str中的字符串(包括\0在内)最多可占用n个字节。fgets函数的返回值为str 数组首地址,如果读到文件尾或出错则返回NULL。 利用fputs函数实现字符串的写入 fputs(字符串或字符串变量,指针变量); 例如: fputs (str,fp); 通过fputs函数的调用,完成将字符数组str中的字符串(或字符指针指向的串,或字符串常量)输出到fp所指向的文件。但字符串结束符\0不输出。 请看程序example10_4.c和example10_5.c 格式化输入输出函数 前面我们用格式化输入函数scanf从终端输入数据,用格式化输出函数printf向终端输出数据。但是如果输入输出的对象不再是终端,而是磁盘文件,上面的两个函数显然已不再适用。 对于面向磁盘文件的格式化输入和输出,就要用到fscanf和fprintf这两个函数。各在scanf和printf这两个名字前面加一个字母f,表示是对“文件”(file)的操作。它们的一般调用方式为: fprintf(文件指针,格式字符串,输出表列); fscanf(文件指针,格式字符串,输入表列); 参数格式字符串、输入表列的规定及使用方法同scanf和printf中的规定。例如: fprintf(fp,“%d,%6.2f”,i,t); 它的作用是将整型变量i和实型变量t的值按%d和%6.2f的格式输出到fp指向的文件上。如果i=3,t=4.5,则输出到磁盘文件上的是以下的字符串: 3, 4.50 同样,用以下fscanf函数可以从磁盘文件上读入ASCII字符: fscanf(fp,”%d,%f”,i,t); 磁盘文件上如果有以下字符: 3,4.5 则将磁盘文件中的数据3送给变量i,4.5送给变量t。用fprintf和fscanf函数对磁盘文件读写,使用方便,容易理解,但由于在输入时要将ASCII码转换为二进制形式,在输出时又要将二进制形式转换成字符,花费时间比较多。因此,在内存与磁盘频繁交换数据的情况下,最好不用fprintf和fscanf函数。 请自己运行example10_6.c
文档评论(0)