文件读写问题
声明#define N 80
#define M 10
typedef struct
{
int record[M]; /* 科目成绩 */
float score; /* 总分 */
float aver; /* 平均分 */
}MANAGE;
MANAGE *stu[N];
打开文件
FILE*fp
if((fp=fopen("data.dat","wb+"))==NULL)
读取文件 n是后面输入的一个小于N的值,m是后面输入小于M的值
for(i=0;i<n;i++)
{
fprintf(fp,"%-15s%-20s",stu[i]->num,stu[i]->name);
for(int j=0;j<m;j++)
fprintf(fp,"%-4d",stu[i]->record[i]);
fprintf(fp,"%-6.1f%-7.2f",stu[i]->score,stu[i]->aver);
fprintf(fp,"\r\n");
}
打开文件
FILE*fp;
if((fp=fopen("data.dat","rb+"))==NULL)
读取文件
for(i=0;i<n;i++)
{
stu[i]=(MANAGE *)malloc(sizeof(MANAGE));
fscanf(fp,"%15s%20s",stu[i]->num,stu[i]->name);
for(int j=0;j<m;j++)
fscanf(fp,"%4d",&stu[i]->record[j]);
fscanf(fp,"%6.1f%7.2f",stu[i]->score,stu[i]->ave); //这里加寻址符“&”&stu->score也是同一问题)
}
写入没有问题
当循环第一次前面几项没有问题,当读取到stu[i]->score,stu[i]->aver这两项时就读成了
-431602080.0 -431602080.00
后面读取的就全乱了,求解啊!!!用的是VC编的。
[ 本帖最后由 锋了 于 2012-11-30 09:29 编辑 ]