C语言第8节 文件(重庆交大版).ppt

  1. 1、本文档共40页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * * * * * * * * * * * * * * * * * fwrite()──从buffer开始,一次输出size个字节,重复count次, 并将输出的数据存放到fp所指向的文件中;同时,将读写位置指针向前移动size* count个字节。 其中,buffer是要输出数据在内存中的起始地址(即从何处开始输出)。 如果调用fread()或fwrite()成功,则函数返回值等于count。 fread()和fwrite()函数,一般用于二进制文件的处理。 对文件进行格式化读/写──fscanf()和fprintf()函数 与scanf()和printf()函数的功能相似,区别在于:fscanf()和fprintf()函数的操作对象是指定文件,而scanf()和printf()函数的操作对象是标准输入(stdin)输出(stdout)文件。 int fscanf(文件指针,格式符,输入变量首地址表); int fprintf(文件指针,格式符,输出参量表); 例如,...... int i=3; float f=9.80; ...... fprintf(fp,%2d,%6.2f, i, f); ...... fprintf()函数的作用是,将变量i按%2d格式、变量f按%6.2f格式, 以逗号作分隔符,输出到fp所指向的文件中:□3,□□9.80(□表示1个空格)。 读/写函数的选用原则 从功能角度来说,fread()和fwrite()函数可以完成文件的任何数据读/写操作。 但为方便起见,依下列原则选用: 1.读/写1个字符(或字节)数据时:选用fgetc()和fputc()函数。 2.读/写1个字符串时:选用fgets()和fputs()函数。 3.读/写1个(或多个)不含格式的数据时:选用fread()和fwrite()函数。 4.读/写1个(或多个)含格式的数据时:选用fscanf()和fprintf()函数。 位置指针与文件定位 文件中有一个读写位置指针,指向当前的读写位置。每次读写1个(或1组)数据后,系统自动将位置指针移动到下一个读写位置上。 如果想改变系统这种读写规律,可使用有关文件定位的函数。 位置指针复位函数rewind() 1.用法:int rewind(文件指针); 2.功能:使文件的位置指针返回到文件头。 随机读写与fseek()函数 对于流式文件,既可以顺序读写,也可随机读写,关键在于控制文件的位置指针。 所谓顺序读写是指,读写完当前数据后,系统自动将文件的位置指针移动到下一个读写位置上。 所谓随机读写是指,读写完当前数据后,可通过调用fseek()函数,将位置指针移动到文件中任何一个地方。 1.用法:int fseek(文件指针,位移量,参照点); 2.功能:将指定文件的位置指针,从参照点开始,移动指定的字节数。 (1)参照点:用0(文件头)、1(当前位置)和2(文件尾)表示。 在ANSI C标准中,还规定了下面的名字: SEEK_SET──文件头, SEEK_CUR──当前位置, SEEK_END──文件尾 (2)位移量:以参照点为起点,向前(当位移量0时)或后(当位移量0时)移动的字节数。在ANSI C标准中,要求位移量为long int型数据。 fseek()函数一般用于二进制文件。 返回文件当前位置的函数ftell() 由于文件的位置指针可以任意移动,也经常移动,往往容易迷失当前位置,ftell()就可以解决这个问题。 1.用法:long ftell(文件指针); 2.功能:返回文件位置指针的当前位置(用相对于文件头的位移量表示)。 如果返回值为-1L,则表明调用出错。例如: offset=ftell(fp); if(offset= =-1L)printf(“ftell() error\n”); 出错检测 ferror()函数 在调用输入输出库函数时,如果出错,除了函数返回值有所反映外,也可利用ferror()函数来检测。 1.用法: int ferror(文件指针); 2.功能:如果函数返回值为0,表示未出错;如果返回一个非0值,表示出错。 (1)对同一文件,每次调用输入输出函数均产生一个新的ferror()函数值。因此在调用了输入输出函数后,应立即检测,否则出错信息会丢失。 (2)在执行fopen()函数时,系统将ferror()的值自动置为0。 clearerr()

文档评论(0)

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

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

1亿VIP精品文档

相关文档