为什么我的第二个scanf运行不了?
为什么我的第二个scanf运行不了?VS2022#include<stdio.h>
int main()
{
char a, b;
scanf_s("%c", &a);
printf("%c\n", a);
scanf_s("%c", &b);
printf("%c\n", b);
return 0;
} #include<stdio.h>
int main()
{
char a, b;
scanf_s("%c", &a, 1); // <--------- 注意这里 --------
printf("%c\n", a);
scanf_s("%c", &b, 1); // <--------- 注意这里 --------
printf("%c\n", b);
return 0;
} 因为'\n'是一个字符被第二个scanf_s读取到并放到b里了,然后为什么没有输出?因为是换行所以没输出,你可以发现你输出完会自己换行,所以字符串在使用scanf_s时需要对缓冲区清空这样就不会出现时效问题了。
页:
[1]