| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 356 人关注过本帖
标题:请问这个程序为什么不能显示最后一行数据
只看楼主 加入收藏
千里之外W
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2013-8-10
结帖率:50%
收藏
已结贴  问题点数:4 回复次数:1 
请问这个程序为什么不能显示最后一行数据
#include<stdio.h>

struct student
{
char num[11],name[9];
int normal,exam,total;
};

void show(char *filename)
{
FILE *fp;
int total;
student x;
fp=fopen(filename,"r");
fscanf(fp,"%s%s%d%d",x.num,x.name,&(x.normal),&(x.exam));
while(!feof(fp))
{
total=(int)(x.normal*0.3+x.exam*0.7);
printf("%-12s%-10s%-4d%-4d%-4d\n",x.num,x.name,x.normal,x.exam,total);
fscanf(fp,"%s%s%d%d",x.num,x.name,&(x.normal),&(x.exam));
}
fclose(fp);
}


int main()
{
show("student.txt");
    return 0;
}
搜索更多相关主题的帖子: include normal 
2014-03-10 18:40
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9007
专家分:53942
注 册:2011-1-18
收藏
得分:4 
你知不知道feof是什么作用?它只表示是否曾意图越过尾部读取数据
如果 !feof 不表示其后的数据就可读;如果 !feof 不表示其之前的读操作就失败(你犯的就是这个错)
feof一般是用来诊断错误原因的。

fscanf(fp,"%s%s%d%d",x.num,x.name,&(x.normal),&(x.exam)); 是否执行成功应该看其返回值是否等于4
2014-03-11 08:39
快速回复:请问这个程序为什么不能显示最后一行数据
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014862 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved