#include <stdio.h>
#include <stdlib.h>
struct student {
int num;
char name[32];
int score[3];
float avg;
};
int main( ) {
int i;
struct student stu[5];
FILE *fp = NULL;
for (i=0; i<5; i++) {
printf("num name score1 score2 score3:\n");
scanf("%d %s %d %d %d", &stu[i].num, &stu[i].name,
&stu[i].score[0],&stu[i].score[1],&stu[i].score[2]);
stu[i].avg = (stu[i].score[0]+stu[i].score[1]+stu[i].score[2])/3.0;
}
if ( (fp=fopen("stud", "wb")) == NULL ) {
printf("open file stud for write error\n");
return 1;
}
if ( fwrite(stu, sizeof(stu), 1, fp) != 1 ) //将&stu[i]这个指针所指向的内容输出到fp这个文件中,每次输出的数据单元占sizeof(stu)个字节,总共输出1次,如果没有将内容正确的写入fp中.
{
printf("write error\n");
return 1;
}
fclose(fp);
}