关于gets和scanf的调试结果的疑问
#include <stdio.h>#include <string.h>
struct student
{
char no[12];
char name[10];
int score[3];
};
void input(struct student s[],int n)
{
int i,j;
for(i=0;i<n;i++)
{
printf("学号:");
//gets(s[i].no);
scanf("%s",&s[i].no);
printf("姓名:");
//gets(s[i].name);
scanf("%s",&s[i].name);
for(j=0;j<3;j++)
{
printf("成绩%d:",j+1);
scanf("%d",&s[i].score[j]);
}
printf("\n%s %s %d %d %d",s[i].no,s[i].name,s[i].score[0],s[i].score[1],s[i].score[2]);
}
}
void main()
{
struct student stu[2];
int i;
input(stu,2);
for(i=0;i<2;i++)
printf("\n%15s%13s%4d%4d%4d\n",stu[i].no,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2]);
}
红色部分如果改为gets,测试结果只有第一次可以输入学号
……
gets()括号里应该加的是指针对吗?
在struct的定义里面
char no[12]
那么为什么gets(s[i].no)第二次就不能输入了呢。。。请大家帮忙测试下。。。