投稿 资料上传 提问 搜索
您现在的位置是: 首页 > 问答 > 正文

为什么用fprintf与fscanf 比fread与fwrite少输出一行?(也就是后者多输出了一行)也就是feof


问题回复
  1. 简讯
    简讯IT技术之家

        有可能是用while(!feof(pFile)){...}判断文件是否结束,并处理文件内容的时候经常会遇到文件最后一行重复两遍的问题,这是因为feof在遇到文件结束符EOF这个位置时,返回的还是0;而到下一个位置时才返回1,这时while循环才退出。所以单纯用上面的while循环判断会出现重复的现象。  

    回复
    1. 9120
      9120回复9120

      是feof

      回复
    2. 9120

      我知道这个问题,所以不应该只要这样使用deof就一定出现相同的问题吗,为什么还有差别?差别又是由什么引起的的?

      回复