高手过来看看哦~
高手看看哪错了?
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define NUM 45
void main(void)
{
struct stu
{
long iNum;
char chpName[10];
float fScore;
}clas[NUM],max;
FILE *stream;
int i;
float fMax;
char stu[20];
stream=fopen( "socu,dat ", "w ");
for(i=0;i <NUM;i++)
{
printf( "\n输入第%d个人的姓名: ",i);
gets(clas[i].chpName);
printf( "\n输入第%d个人的学号: ",i);
gets(str);
clas[i].iNum=atol(str); /*atol 是什么意思呀?书上没有介绍呀?*/
printf( "\n输入第%d个人的成绩: ",i);
gets(str);
clas[i].fScore=atof(str);
}
fwrite(clas,sizeof(struct stu),NUM,stream);
fclose(stream);
stream=fopen( "docu.dat ", "r ");
fread(&max,sizeof(struct stu),1,stream);
fMax=max.fScore;
for(i=1;i <NUM;i++)
{
fread(&max,sizeof(struct stu),1,stream);
if(max.fScore> fMax)
fMax=max.fScore;
}
printf( "%f\n ",fMax);
fclose(stream);
}
[解决办法]
atol():将字符串转换成一个长整数