跪求!!c语言怎样实现从txt文件中读取数据并存入结构数组?? 100

例如文本中是:号码姓名得分1得分2得分3......(得分很多)1张三508060......2李四605080.............使用结构数组structdata... 例如文本中是:

号码 姓名 得分1 得分2 得分3 ......(得分很多)
1 张三 50 80 60 ......
2 李四 60 50 80 ......
.......

使用结构数组 struct data 怎样将每个人的所有得分存入结构数组?
{ int num;
char name[20];
float score[12]; //存每个人的成绩
}game[10]; //存每个人的信息
展开
 我来答
lhy137910144
2014-12-16 · TA获得超过115个赞
知道答主
回答量:48
采纳率:0%
帮助的人:26.4万
展开全部
声明一个struct data 对象 假如是Data,一次读取一个Data的数据,那么

fread((void*)&Data, sizeof(Data), 1, fstream); 即可。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kaixingui2012
2014-12-16 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:6426万
展开全部
号码 姓名 得分1 得分2 得分3 ......(得分很多? 12个?是不是确切的?)
追问
10个以上吧,12是随便写的,只想知道是怎么读入那个数组的
追答
试试吧,读文件,一定规范文件内容,每行的数据要格式一致,数目一致才好!!
#include <stdio.h>
#define MAX_LINE 10
struct  data {
int num;
char name[20];
float  score[12];  //存每个人的成绩
} game[MAX_LINE]; 

int main()
{
FILE *fp;
int i,j,k;
fp=fopen("data.txt", "r" );
if ( fp==NULL )
{
printf("open file error\n");
return -1;
}
while( fgetc(fp) != '\n' ) {
if( feof(fp) )
break;
} //skip first line ;
i=0;
while( !feof(fp) )
{
fscanf(fp, "%d", &game[i].num );
fscanf(fp, "%s", game[i].name );
for( j=0;j<12;j++ )
{
fscanf(fp, "%f", &(game[i].score[j]) ) ;
if ( fgetc(fp)=='\n' )
break;
}
i++;
if ( i>= MAX_LINE )
break;
}

for( j=0;j<i;j++ )
{
printf("%d %s", game[j].num, game[j].name );
for( k=0;k<12;k++ )
printf(" %g", game[j].score[k] );
printf("\n");
}
fclose(fp);
return 0;
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式