问一个关于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]) 会被跳过?
谢谢
谁能给我讲一下缓冲区的知识呀?
{ 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键。