码迷,mamicode.com
首页 > 编程语言 > 详细

关于C语言读取文件时候多读一行

时间:2014-06-08 19:22:34      阅读:276      评论:0      收藏:0      [点我收藏+]

标签:c   get   文件   问题   代码   c语言   

梗概:为什么C语言读取文件到结构体时为什么整天多读一行?一切都是【!feof(fp)】的错!!!

         while (!feof(fp))
 {
  fgets(buffer,256,fp);
  j++;
 }    

 像这样的代码,是很多C语言学者经常犯的错误!!

feof()这个函数是用来判断指针是否已经到达文件尾部的。
若fp已经指向文件末尾,则feof(fp)函数值为“真”,即返回非零值;否则返回0。

对呀!那有什么问题的呢?

其实feof() 这个函数是当读到文件结束符就返回 true 值,而非到文件最后一个字符,所以当读完文件最后一个字符时,如果后面还有换行或者空格的时候, 他会继续循环。所以就会多把最后循环一次。解决的方法其实很简单!!只需要把fgets放到while哪里判断就OK了!!

      while (fgets(buffer,256,fp))

 { 
    j++;
 }    

怎样?简单粗暴吧??

关于C语言读取文件时候多读一行,布布扣,bubuko.com

关于C语言读取文件时候多读一行

标签:c   get   文件   问题   代码   c语言   

原文地址:http://www.cnblogs.com/liuweimingcprogram/p/3776183.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!