标准IO(farsight部分).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文档。上传文档
查看更多
标准IO(farsight部分)

标准I/O库-读写流 调用fopen()成功打开流之后,可在三种不同类型的非格式化I/O中进行选择,对其进行读、写操作: 每次一个字符的I/O。使用fgetc()/fputc()一次读或写一个字符,如果流是带缓存的,则标准I/O函数处理所有缓存。 每次一行的I/O。使用fgets()和fputs()一次读或写一行。每行都以一个新行符终止。当调用fgets()时,应说明能处理的最大行长。 直接I/O。fread()和fwrite()函数支持这种类型的I/O。每次I/O操作读或写某种数量的对象,而每个对象具有指定的长度。这两个函数常用于从二进制文件中读或写一个结构。 标准I/O库-读写流结束判定 feof() 判断文件是否结束,可用于二进制文件。 char cTemp; while (!feof(fp) !ferror(stdin)) { cTemp = fgetc(fp); } EOF/feof() EOF文件结束的返回标志,一般使用方法: char cTemp; cTemp = fgetc(fp); while (cTemp != EOF) { cTemp = fgetc(infile); } 标准I/O库-读写流-字符I/O-输入 标准I/O库-读写流-出错函数 标准I/O库-读写流-字符I/O-example 标准I/O库-读写流-行I/O-输入 标准I/O库-读写流-行I/O-输出 标准I/O库-读写流-行I/O-example 标准I/O库-读写流-二进制I/O 标准I/O库-读写流-二进制I/O-example 标准I/O库-读写流-二进制I/O-example 标准I/O – 效率 fgets()/fputs()/getc/putc调用代码 标准I/O – 效率 fgets()/fputs()/getc/putc 效率对比图 标准I/O库-定位流 定位标准I/O流的两种方式 ftell()和fseek(): 这两个函数自V7以来就存在了,但是它们都假定文件的位置可以存放在一个长整型中。 fgetpos()和fsetpos()。这两个函数是新由ANSI C引入的。它们引进了一个新的抽象数据类型fpos_t,它记录文件的位置。 需要移植到非UNIX系统上运行的应用程序应当使用fgetpos()和fsetpos() 标准I/O库-定位流- fseek()/ftell()/rewind() 标准I/O库-定位流 - fgetpos()/fsetpos() 标准I/O库-临时文件 标准I/O库-临时文件example 自己实现一个tmpfile()函数。 先调用tmpnam()产生一个唯一的路径名。 调用fopen()打开。 调用unlink()删除。 说明:Linux系统规定,一个文件如果有连接计数器不为0,或者其进程打开数不为0,均不会删除其文件内容,利用这个特点来实现tmpfile()。 I/O模型比较 * 以下三个函数可用于一次读一个字符: 三个函数的返回:若成功则为下一个字符,若已处文件尾端或出错则为EOF 函数getchar()等同于getc(stdin) 注意,不管是出错还是到达文件尾端,这三个函数都返回同样的值。为了区分这两种不同的情况,必须调用ferror()或feof()。 getc()的实现是一个宏,而fgetc()是一个函数。 返回值为int类型。 检查文件出错函数: 在大多数的FILE对象的实现中,保留两个标志: 出错标志。 文件结束标志。 标准I/O库-读写流-字符I/O-输出 以下三个函数可用于一次输出一个字符: putchar(c)等价于putc(c,stdout)。 出错返回EOF。 getc()/getchar()/putc()/putchar()实现为宏,fgetc()/fputc()实现为函数,请根据情况选择。 example: 循环从标准输入(stdin)逐个字符读入数据,并逐个字符显示到标准输出。 输出结果: 下列两个函数提供每次输入一行的功能: 两个函数返回:若成功则为buf,若已处文件尾端或出错则为null 这两个函数都指定了缓存地址,读入的行将送入其中。gets()从标准输入读,而fgets()则从指定的流读。 对于fgets(),必须指定缓存的长度n。此函数一直读到下一个新行符为止,但是不超过n-1个字符,读入的字符被送入缓存。该缓存以null字符结尾。如若该行,包括最后一个新行符的字符数超过n-1,则只返回一个不完整的行,而且缓存总是以null字符结尾。对fgets()的下一次调用会继续读该行。 gets()是一个不推荐使用的函数,因为调用者在使用gets()时不能指定缓存的长度,这样就可能造成缓存越界(如若该行长于缓存长度),写到缓

文档评论(0)

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

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

1亿VIP精品文档

相关文档