69,371
社区成员
发帖
与我相关
我的任务
分享
#include<stdio.h>
#include<stdlib.h>
typedef struct ClassInfo{
int nClassNO;
char szClassName[20];
int nStudentNumber;
}CLASSINFO;
typedef struct ClassInfoInFile{
CLASSINFO Class;
int nStudentInfoOffset;
char carrPreserved[512];
}CLASSINFOINFILE;
typedef struct StudentInfo{
char szID[9];
char szName[21];
double darrScores[3];
}STUDENTINFO;
typedef struct ClassScore
{
STUDENTINFO *pStudents;
int nCount;
} CLASSSCORE;
int readtext(FILE *fp, CLASSINFOINFILE *classinfohead, CLASSSCORE *classscore)
{
STUDENTINFO *m;
fscanf(fp,"%d%s%d", &classinfohead->Class.nClassNO, (*classinfohead).Class.szClassName, &(classinfohead->Class.nStudentNumber));
classinfohead->nStudentInfoOffset = 544;
classscore->nCount = 0;
m = classscore->pStudents;
while(fscanf(fp, "%s %s %lf %lf %lf\n", m->szID, m->szName,
&m->darrScores[0], &m->darrScores[1], &m->darrScores[2]) == 5) {
m++;
classscore->nCount++;
}
return (*(classscore)).nCount;
}
int main()
{
FILE *fp;
CLASSINFOINFILE *Class, Class1;
CLASSSCORE *Stu, Stu1;
if(!(fp=fopen("DataForLab3.txt", "r+"))) {
printf("open error!\n");
exit(-1);
}
Class = &Class1;
STUDENTINFO Stu2[20];
Stu1.pStudents = Stu2;
Stu = &Stu1;
readtext(fp, &Class1, &Stu1);
return 0;
}
以上是我改过的,你可以尝试一下;
对于你读文件的方式我感觉还是会有问题,主要看你的文件内容的格式了。
程序编译有很多警告和错误;指针和变量运用的还不是很熟;