当前位置: 代码迷 >> C语言 >> 该程序为什么不能读出准确数据?
  详细解决方案

该程序为什么不能读出准确数据?

热度:136   发布时间:2006-04-28 13:33:00.0
该程序为什么不能读出准确数据?

#include<stdio.h>
#define N 5
void main()
{
struct st
{char ch[10];
long int xh;
float score;
}a[N];
FILE *fp;
fp=fopen("legend.txt","r");

for (int i=0;i<N;i++)
fscanf(fp,"%s,%Ld,%f",&a[i].ch,&a[i].xh,&a[i].score);
struct st *pt;
pt=a;
for(pt=a;pt<a+N;pt++)
{ if(pt->ch=="B")
printf("%s,%Ld,%4.1f",pt->ch,pt->xh,pt->score);
else break;
}
fclose(fp);
}
文件如下:
A,980102,80.5
B,980103,90.0
C,980104,75.5
D,980105,85.0
E,980106,95.0
请问为什么不能读出B及其同组数据?谢谢

搜索更多相关的解决方案: 准确数据  score  struct  

----------------解决方案--------------------------------------------------------
fscanf(fp,"%s,%Ld,%f",&a[i].ch,&a[i].xh,&a[i].score);


有问题,自己找,程序结构有些混乱,另外怎么C++的用法都上来了,该成C的

for (int i=0;i<N;i++)
----------------解决方案--------------------------------------------------------

你这程序问题多到 把问题写出来 比你这程序都长


----------------解决方案--------------------------------------------------------

[CODE]
#include <stdio.h>
#define N 5
struct
{
char ch;
long xh;
float score;
} a[N], *pt;

int main()
{

FILE *fp;
int i;

fp=fopen("legend.txt","r");
if(fp==NULL)
exit(-1);
for (i=0;i<N;i++)
fscanf(fp,"%c,%ld,%f",&a[i].ch,&a[i].xh,&a[i].score);

for(pt=a;pt<a+N;pt++)
if(pt->ch=='B')
{
printf("%c,%ld,%4.1f\n",pt->ch,pt->xh,pt->score);
break;
}

fclose(fp);
return 0;
}

[/CODE]


----------------解决方案--------------------------------------------------------

有劳大哥,小弟是菜鸟,刚学,急用,呵呵


----------------解决方案--------------------------------------------------------
上面不是已经给你改好了吗?
----------------解决方案--------------------------------------------------------

所以表示感谢啊!


----------------解决方案--------------------------------------------------------
  相关解决方案