#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及其同组数据?谢谢
----------------解决方案--------------------------------------------------------
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]
----------------解决方案--------------------------------------------------------
有劳大哥,小弟是菜鸟,刚学,急用,呵呵
----------------解决方案--------------------------------------------------------
上面不是已经给你改好了吗?
----------------解决方案--------------------------------------------------------
所以表示感谢啊!
----------------解决方案--------------------------------------------------------