求助:gets接收字符串没有成功,反而出现乱码
//目标是用顺序表做成一个同学录系统#include<stdio.h>
#include<string.h>
#define MAX 100
typedef struct
{
char name[30];
char sex[5];
int age;
int id;
}info1;//在这里定义一个结构体的类型,用来存放处理的对象的的信息
typedef struct
{
info1 info[MAX];
int len;
}stu;//这是一个顺序表,他的元素类型是我们刚才定义的info1类型的数组
//该系统有以下几个功能:构建数据,查询数据,增添数据,删除数据,排序,我们分别来进行这些功能模块设计
/**********************************************/
/*功能:创造纪录*/
/*接口:顺序表指针*/
/*****************************************/
void creatlist(stu *L)
{
int i;
printf("请输入记录的多少:");
scanf("%d",&L->len);//控制长度的变量
printf("请输入数据:\n姓名 性别 年龄 学号\n");
for(i=0;i<L->len;i++)
{
gets(L->info[i].name);//为什么在此处用gets接收字符串没有成功,反而出现乱码呢?如果改为scanf就可以正常输入输出
scanf("%s",L->info[i].sex);
scanf("%d",&L->info[i].age);
scanf("%d",&L->info[i].id);
}
}
void output(stu *L)
{
int i;
printf("表中的信息为:\n姓名 性别 年龄 学号\n");
for(i=0;i<L->len;i++)
{
printf("%s\t",L->info[i].name);
printf("%s\t",L->info[i].sex);
printf("%d\t",L->info[i].age);
printf("%d\n",L->info[i].id);
}
}
main()
{
stu *L,a;
L=&a;
creatlist(L);
output(L);
}