这篇博客很清楚的讲解了为什么有时候我们的scanf不执行的问题,不过比这篇文章中的解决办法更加优雅的是在%s前面加上\n。下面为示例代码:
short q;
scanf("%hd", &q);
printf("%d\n", q);
char cha;
scanf("%c", &cha);
printf("%d %c\n", cha, cha);
这时第二个scanf将无法执行,改为下面这样即可执行:
short q;
scanf("%hd", &q);
printf("%d\n", q);
char cha;
scanf("\n%c", &cha);
printf("%d %c\n", cha, cha);