zoukankan      html  css  js  c++  java
  • 关于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++;
        }

    怎样?简单粗暴吧??

    既然选择了远方,就要风雨兼程~
  • 相关阅读:
    数据结构一
    MVC5.0(一)
    异步多线程(六)lock锁
    异步多线程(五)多线程异常处理
    异步多线程(四)Task
    paypal payflow设置视频教程
    Java栈Stack知识点
    Java知识树梳理
    js定时器
    jdk环境变量配置改变不生效的问题
  • 原文地址:https://www.cnblogs.com/liuweimingcprogram/p/3776183.html
Copyright © 2011-2022 走看看