zoukankan      html  css  js  c++  java
  • C语言判断文件指针是否结尾的问题

    c语言的文件指针结尾问题:有两个方法可以判断文件指针是否到结尾
    pay attention:读取文件的函数会影响文件指针移动
      1.使用feof(文件指针)函数判断,如果到了结尾返回0,否则返回非0
      2.使用EOF(就是-1)判断指针是否到结尾 仅用于普通文件,不适用于二进制文件
    适用条件--------重点
      方法1:
      *1.有一个弊端就是,feof函数判断文件指针是否到结尾,假设已经到结尾了,还要再读取一次数据进行判断,也就是说feof用来判断文件指针是否
        到文件结尾是,会多读一次数据。(为什莫会这样,因为这是头文件stdio.h的定义问题)
      *2.解决办法:可以先在循环外,读一次数据,这样在循环就能得到正常的读取次数了
      eg:
      typedef struct node{ //这是一个学生信息的结点
        char name[20];
        char num[20];
        char sex[20];
        int age;
      }Student;
      //主函数中
      int main(){
        FILE *fp;  
        Student stu;
        if((fp=fopen("E:\a.txt","rb+")!=NULL){
          fscanf(fp,"%s%s%s%d",stu->name,stu->num,stu->sex,&stu->age);
          while(!feof(fp)){
            cout<<stu-name<<endl; //输出所有文件中的学生姓名
            fscanf(fp,"%s%s%s%d",stu->name,stu-num,stu->sex,&stu->age);
          }
        }
      }

    reference:

    http://www.mamicode.com/info-detail-233424.html

    https://www.cnblogs.com/dayongge/p/14294881.html

    https://blog.csdn.net/bingqing07/article/details/5785080/

    fscanf(fp,"%s%s%s%d",stu->name,stu-num,stu->sex,&stu->age);
  • 相关阅读:
    将已排序的数组乱序
    Roadmap!!
    测试
    最大对称字串
    约瑟夫环问题
    大家好
    MYSQL数据库导入SQL文件出现乱码如何解决
    Hibernate缓存
    Spring备忘四(涵盖Spring2.5)
    Struts2 Hello,Wold
  • 原文地址:https://www.cnblogs.com/nanfengnan/p/14408733.html
Copyright © 2011-2022 走看看