m0_37678035 2017-02-27 03:04 采纳率: 0%
浏览 1400

如何解决feof函数的死循环?

void load_info ()
{
FILE* fp;
Employer* p;
int maxId = 0 ;
double a=0;
if((fp=fopen("d:\Salary.txt","r"))==NULL)
{//打开文件
printf ("文件读取失败");
exit(0);
}

p= (Employer*) malloc (sizeof ( Employer));//生成不存数据的头结点
p->next = NULL; 
head = p;//使头指针指向头结点  表头
q = p ; //q 永远都是最后一个

while(!feof(fp))//文件的问题 。。。  应该是刚才保存后出现的问题  也就是 你保存的有问题   我们可以试试
{

    p = ( Employer* ) malloc ( sizeof ( Employer ));//申请一个新的节点插入到q的后面

    fscanf(fp,"%d%s%s%d%s%d",&p->id,p->name,p->sex,&p->age,p->department,&p->post);
    //                                                     ↑你在这加什么&                    ↑还有这里 这个不删
     if(feof(fp))//读取结束跳出循环  
   {           
       p->next = NULL;  
       break;       
     }  

    if ( maxId< p->id )
        maxId = p-> id;//获得最大职工号
    p -> next = NULL;//将p->next指针设为空
    q ->next = p ;//连接新节点
    q = p;//j将q指针移到当前最后一个节点 

    if(feof(fp))
        break;


}
fclose(fp);

}

  • 写回答

1条回答 默认 最新

  • shen_wei 2017-02-27 04:25
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)