以下代码的输出是什么?为什么?
我很想知道为什么c编译器显示异常输出。
幕后会发生什么?
#include<stdio.h>
int main()
{
char a,b,c;
printf("Enter First char:");
scanf("%c",&a);
printf("Enter Second char:");
scanf("%c",&b);
printf("Enter Third char:");
scanf("%c",&c);
return 1;
}
Enter First char:a
Enter Second char:Enter Third char:c
见上面的输出,它不是第二个输入而是直接询问第三个输入!
答案 0 :(得分:0)
首次输入1
并点击Enter
(Enter
被解释为换行符)
第一个scanf读取'1'
。
第二个scanf读取'\n'
。
然后输入2
并点击Enter
。第三个scanf读取'2'
。
您可能需要阅读"%c "
或" %c"
,因为格式字符串中的' '
会跳过所有空格。