c语言结构体,第一个输入gender值时报错,似乎是冲突,但完全没看明白哪错了
(1)scanf_s(); 在接收数据时,需要指明接收的最大长度。
(2)读取字符串后,需要用getchar()接收一下回车符,避免对下一次输入有影响。
for循环部分代码修改如下:
for (i=0;i<3;i++)
{
printf("name:"); scanf_s("%s",a[i].name,60); getchar();//接收回车符
printf("gender:");scanf_s("%s",a[i].gender,10);
printf("age:");scanf_s("%d",&a[i].age,1); getchar();//接收回车符,避免对下一次输入有影响
display(a[i]);
}
scanf_s输入字符串和字符时,必须指定字符串的长度。所以scanf_s("%s",a[i].name,60);才行。后面的类似修改即可