fwrite问题,顺便散分
#include<stdio.h>#include<stdlib.h>typedef struct{ int number; char name[10];}student;void stu_scanf(student *stu,int n){ for(int i=0;i<n;i++) { printf("请输入学号和姓名:\n"); scanf("%d%s",&stu[i].number,stu[i].name); }}int main(){ FILE *fp; int i,j; student stu[2],stud[2]; if((fp=fopen("1.txt","w"))==NULL) { printf("can't open 1.txt\n"); exit(0); } stu_scanf(stu,2); for(i=0;i<2;i++) fwrite(&stu[i],sizeof(student),1,fp); fclose(fp); if((fp=fopen("1.txt","r"))==NULL) { printf("can't open 1.txt\n"); exit(0); } i=0; while(!feof(fp)) { fread(&stud[i++],sizeof(student),1,fp); } fclose(fp); for(j=0;j<i;j++)//此处I为何是3,fwrite到底多写入了什么东西?怎么解决 printf("%d\t%s\n",stud[j].number,stud[j].name); return 0;}