C语言关于文件的输入,可以正常运行,文件里面东西不全

#include<stdio.h>

#include<stdlib.h>

#include<fcntl.h>

#define SIZE 3

struct student

{

 long num;

 char name[10];

 int age;

 char address[10];

}stu[SIZE],out;

void fsave()

{

 FILE*fp;

 int i;

 if((fp=fopen("student","wb"))==NULL)

 {

  printf("Cannot open file.\n");

  exit(1);

 }

 for(i=0;i<SIZE;i++)

  if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1)

   printf("File write error.\n");

  fclose(fp);

}

main()

{

 FILE *fp;int i;

 printf("please enter student's number,name,age and address.\n");

 for(i=0;i<SIZE;i++)

 {

  printf("Input student %d:",i+1);

  scanf("%d%s%d%s",&stu[i].num,stu[i].name,&stu[i].age,stu[i].address);

 }

 fsave();

 return 0;

}

修改,供参考:

#include<stdio.h>

#include<stdlib.h>

#include<fcntl.h>

#define SIZE 3

struct student{

    int  num;

    char name[16];

    int  age;

    char address[32];

}stu[SIZE],out;

void fsave()

{
     FILE*fp;

     int i;

     if((fp=fopen("student","wb"))==NULL)

     {
          printf("Cannot open file.\n");

          exit(1);

     }

     for(i=0;i<SIZE;i++)
     {

         fprintf(fp,"%d %s %d %s\n",stu[i].num,stu[i].name,stu[i].age,stu[i].address);//格式化输入
         //if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1)
         //{
         //    printf("File write error.\n");
         //}

     }
     fclose(fp);

}

int main()

{
     //FILE *fp;

     int i;

     printf("please enter student's number,name,age and address.\n");

     for(i=0;i<SIZE;i++)

     {
         printf("Input student %d:",i+1);

         scanf("%d%s%d%s",&stu[i].num,stu[i].name,&stu[i].age,stu[i].address);

     }

     fsave();
     
     return 0;

}