用的devc++,但是输出有问题


#include<stdio.h>
#include"student.h"
void getlist(Student aStu[],int number);
int save(Student aStu[],int number);

int main(int argc,char const *argv[])
{
    int number=0;
    printf("请输入学生数量:");
    scanf("%d",&number);
    Student aStu[number];
    getlist(aStu,number);
    if(save(aStu,number)){
        printf("保存成功\n");    
    }else{
        printf("保存失败\n");    
    } 
    return 0;
}
void getlist(Student aStu[],int number)
{
    char format[STR_LEN];
    sprintf(format, "%%%d s", STR_LEN-1);
    int i;
    for(i=0;i<number;i++){
        printf("第%d个学生:\n",i);
        printf("\t姓名:");
        scanf(format,aStu[i].name);
        printf("\t性别(0-男,1-女,2-其他):");
        scanf(format,aStu[i].gender);
        printf("\t年龄:");
        scanf(format,aStu[i].age);     
    }
}
int save(Student aStu[],int number)
{
    int ret =-1;
    FILE*fp=fopen("student.date","w");
    if(fp){
        ret =fwrite(aStu,sizeof(Student),number,fp);
        fclose(fp);    
    }
    return ret==number;
}

```c
#ifndef _STUDENT_H_
#define _STUDENT_H_

#define STR_LEN 20

typedef struct _student{
    char name[STR_LEN];
    int gender;
    int age;
}Student;

#endif






![img](https://img-mid.csdnimg.cn/release/static/image/mid/ask/700721903746164.jpg "#left")

![img](https://img-mid.csdnimg.cn/release/static/image/mid/ask/010331903746157.jpg "#left")

![img](https://img-mid.csdnimg.cn/release/static/image/mid/ask/84273190374613.jpg "#left")

void getlist(Student aStu[],int number)
{
    //char format[STR_LEN];
    //sprintf(format, "%%%d s", STR_LEN-1);
    int i;
    for(i=0;i<number;i++){
        printf("第%d个学生:\n",i+1);    //
        printf("\t姓名:");
        scanf("%s",aStu[i].name);
        printf("\t性别(0-男,1-女,2-其他):");
        scanf("%d",&aStu[i].gender);    //
        printf("\t年龄:");
        scanf("%d",&aStu[i].age);     //
    }
}