问一个关于c语言的问题

来源:百度知道 编辑:UC知道 时间:2024/06/25 19:44:22
for(i=0;i<2;i++)
{ printf("请输入名字");
gets(Name[i]);
printf("请输入成绩");
scanf("%d",&KeMu[i][0]);
scanf("%d",&KeMu[i][1]);
scanf("%d",&KeMu[i][2]);
}

这个循环到第二次的时候为什么gets(name[i]) 会被跳过?
谢谢
谁能给我讲一下缓冲区的知识呀?

scanf和 gets不要混用。 scanf会剩下个回车, gets读到这个回车就退出了

1L好快```
1L正解,scanf会把回车留到stdin里

每次刷新一下输入缓冲区

fflush(stdin);

最后一个scanf后面插入getchar(); 吃掉多余的ENTER键。