weixin_41423378
银翼的魔术师s
采纳率69.1%
2018-01-20 10:22 阅读 1.2k

c语言feof() 好奇怪

5

第一幅图:用fgetc()再用feof(),最后一次fgetc()会返回EOF给char c 虽然没法打印显示出来,但在调试窗口可以看到-1。 所以除了回车符号一个读操作了11次。第二幅图(??):一共只读操作 了10次,调试时读取完最后一个数字9,下一句feof()就为真了,就结束了,咋就和第一幅图不一样,不多读一次了。
第一幅图:图片说明
第二幅图:图片说明

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

2条回答 默认 最新

  • xiaoqiang_826 xiaoqiang_826 2018-01-20 13:19

    第二图改为fscanf(fp,"%c",&a);应该就一样了。可以去了解下格式化IO用法。

    点赞 评论 复制链接分享
  • wanfustudio 飞哥 2018-01-23 03:16

    每一次都去操作都要判断feof, 因为你每一次读取都可能触发结尾标准,如果你理解这个就明白原因了

    一旦有一次触碰到文件末尾,而你未做feof判断,你就可能使用上一次读取的值继续执行后续的代码了

    点赞 评论 复制链接分享

相关推荐