这篇博客很清楚的讲解了为什么有时候我们的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);
本文解释了C语言中scanf遇到的问题,尤其是在读取字符时如果不加换行符可能导致第二次scanf不执行。解决方案是在读取字符前先读取一个换行符,确保正确解析用户输入。
6964





