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

例如文本中是:

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

使用结构数组 struct data 怎样将每个人的所有得分存入结构数组?
{ int num;
char name[20];
float score[12]; //存每个人的成绩
}game[10]; //存每个人的信息

第1个回答  2014-12-16
声明一个struct data 对象 假如是Data,一次读取一个Data的数据,那么

fread((void*)&Data, sizeof(Data), 1, fstream); 即可。
第2个回答  2014-12-16
号码 姓名 得分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;
}

本回答被网友采纳

c语言入门代码009 从 txt 文本文件中加载数据到结构体数组
第一步,通过fopen函数以读取模式打开文件,准备从文件头部获取数据。第二步,文件中逐个读取结构体字段,并将数据保存到数组中,直到文件结尾。feof函数用于检测文件是否达到末尾,判断是否需要结束循环。在读取数据时,使用fscanf函数,与scanf相似,但添加了文件指针参数,用于在文件内容中执行读取操作。数据...

如何使用C语言从TXT文件中读取如下格式的数据并存储与数组中?
1.fopen函数打开需要读取的文本,获取该文件的文件描述符 2.使用fscan()函数对文件进行读取。3.放到二维数组其实就是读取相应格式的数据,然后对应二维数组的每个位置 例如 include "stdio.h"#define M 300#define N 50void main(){ int i,j; float a[M][N]={0}; FILE *fp; if((fp=fop...

C语言,怎么把TXT文件里的数据赋值到数组里面
1 以文本方式打开文件。2 循环用fscanf格式化输入数据到数组。3 判断fscanf的返回值,如果显示到达文件结尾,退出输入。4 关闭文件。5 使用数据。二、代码实现。设定文件名为in.txt, 存有一系列整型数据,以空格或换行分隔。代码可以写作:include <stdio.h>int main(){int v[100];\/\/开一个足够大...

如何用C语言读取txt文件中的数据到程序的数组中?
int i;fin = fopen("abc.txt","r"); \/\/ 打开文件,按读的方式打开 for (i=0;i<50;i++)fscanf(fin,"%d %d", &a[i][0], &a[i][1]); \/\/ 循环读 fclose(fin); \/\/关闭文件 for (i=0;i<50;i++) printf("%d %d\\n",a[i][0],a[i][1]); \/\/输出来看看 ...

如何将txt文件中的学生信息读取到结构体数组中,C语言
FILE *fp;printf("请输入文件名,路径:"); \/\/打开txt文件scanf("%s",filename);if((fp = fopen(filename,"r")) == NULL) {fprintf(stderr,"%s 文件打开失败!\\n",filename);exit(0); } for(int i=0; i<12; i++) \/\/循环读取{ fscanf(fp,"%s%s%f",StuInfo[i].I...

C语言怎样将.txt文件中的数据写入到结构体中去
txt文件中的数据写入到结构体中去的源代码如下:include<stdio.h> include <string.h> \/\/可以退出的头文件 include <stdlib.h> \/\/结构体的长度 define DATALEN 15 \/\/函数声明 \/\/定义结构数组 struct wordUnit{ int id; \/\/id char word[10]; \/\/词语 char depId[10]; \/\/依存词语的id char...

C语言如何实现对txt文件的读取和写入
1、使用VS新建空工程,直接点击确定,如下所示。2、新建c文件,用于C语言编译器,输入main.c文件,如下所示。3、参考代码:include <stdio.h> int main(){ \/\/下面是写数据,将数字0~9写入到data.txt文件中 FILE *fpWrite=fopen("data.txt","w");if(fpWrite==NULL){ return 0;} for(int...

C语言逐行读取txt中的数据,并保存到数组中
include <stdio.h>int main(void) { FILE *fin = fopen("file.txt", "r"); \/*假设文件名为file.txt*\/ int a[100], i; for (i = 0; i < 100; i++) { fscanf(fin, "%d", &a[i]); } fclose(fin); \/*此时已经读取完毕,可以进行接下来的处理了*\/ ...

C\/C++如何读取TXT文件的行数和把TXT文件的内容存到数组中
C语言读取TXT文件的行数并把把TXT文件的内容存到数组中,需要根据每行的内容(字符,数字,字符串)选取fgets、fscanf或者fgets。这里假设每行是一个字符串,每行不超过127个字符(用数组存字符串,最后一位存'\\0'),选取fgets进行读取。示例代码如下:include <stdio.h>#include <stdlib.h>int main...

如何用c语言从txt文件中读取数据
用C语言从txt文件中读取数据,可以使用C标准库文件自带的文件接口函数进行操作。一、打开文件:FILE *fopen(const char *filename, const char *mode);因为txt文件为文本文件, 所以打开时选择的mode应为"r"或者"rt"。二、读取文件:读取文件应根据文件内容的格式,以及程序要求,选择读取文件的函数。

相似回答