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

C语言判断文件指针是否结尾的问题

时间:2021-02-19 13:04:46      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:返回   logs   eof   back   col   code   font   html   fscanf   

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);

C语言判断文件指针是否结尾的问题

标签:返回   logs   eof   back   col   code   font   html   fscanf   

原文地址:https://www.cnblogs.com/nanfengnan/p/14408733.html

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