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