/* PRESET CODE BEGIN - NEVER TOUCH CODE BELOW */
#include<stdio.h>
#include <stdlib.h>
struct Student
{
char num[10];
char name[10];
float c[3];
};
/* PRESET CODE END - NEVER TOUCH CODE ABOVE */
struct Student stu[30];
int main()
{FILE *fp=fopen("cj.txt","rb");struct Student *p;
for(p=stu;p<stu+30;p++)
{fread(&p,sizeof(struct Student),1,fp);
}
printf("%s,%s,%.1f,%.1f,%.1f\n",p->num,p->name,p->num[0],p->num[1],p->num[2]);
}
從文件cj.txt讀入一個班的學生成績(人數不大於30),用結構體數組保存,並輸出到屏幕。
內容包括:學號、姓名、語文、數學、外語。
每個學生輸出一行,格式為“0001,niu12,99,99,99”
cj.txt的內容
00001 niu34 99 62 95
00002 niu35 97 62.5 93.5
00003 niu36 95 63 92
00004 niu37 93 63.5 90.5
00005 niu38 91 64 89
00006 niu39 89 64.5 87.5
00007 niu40 87 65 86
00008 niu41 85 65.5 84.5
00009 niu42 83 66 83
00010 niu43 81 66.5 81.5
00011 niu44 79 67 80
00012 niu45 77 67.5 78.5
00013 niu46 75 68 77
00014 niu47 73 68.5 75.5
00015 niu48 71 69 74
00016 niu49 69 69.5 72.5
總是會報錯,,,,,,,
請題主在最後那句【printf】前面,加上一句【p=stu;】,把p重新指向&stu[0]這個位置