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

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

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

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

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

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

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

怎样?简单粗暴吧??

最新文章

  1. 前端学HTTP之安全HTTP
  2. How those spring enable annotations work--转
  3. 模拟搭建Web项目的真实运行环境(五)
  4. 代理模式/proxy模式/结构型模式
  5. HTML代码简写法:Emmet和Haml
  6. shell中引用其他脚本的方法
  7. fedora 关闭、禁止selinux
  8. Netsh配置端口
  9. jdk+jira配置
  10. 使用 Spring Data JPA 简化 JPA 开发
  11. SHDP--Working With HBase(一)之基本介绍
  12. servlet生成随机验证码
  13. JSTL与EL(转)
  14. (中等) POJ 3034 Whac-a-Mole,DP。
  15. JDBC整合c3p0数据库连接池 解决Too many connections错误
  16. poj 1704 Georgia and Bob(阶梯博弈)
  17. 常用Mysql或者PostGresql或者Greenplum的语句总结。
  18. 深入浅出MySQL++数据库开发、优化与管理维护+第2版+唐汉明 -- 存储引擎 - 数据类型 - 字符集和校验规则 -
  19. Strange Way to Express Integers(中国剩余定理+不互质)
  20. openstack常见问题解决方法总结

热门文章

  1. jquery 使用记录
  2. 在FooterTemplate内显示DropDownList控件
  3. day01.1-计算机体系与数据描述
  4. git 命令总结(转)
  5. Linux的重要子目录
  6. CSS之字体样式
  7. H5教程(二),CSS入门(一)选择器
  8. Codeforces Round #533 (Div. 2) 部分题解A~D
  9. 牛客国庆集训day5 B 电音之王 (大数乘模)
  10. centos7上面关闭防火墙