今天我遇到的问题是,当我使用两次scanf接受字符作为输入时,第二次scanf被跳过。
我试图弄清楚我得出的结论是,当我们在第一次扫描后按下回车键时,跳过第二次扫描,因为输入键在第二次扫描中作为输入。
有人可以解释一下它的确切原因吗?
int main()
{
char ch;
int num;
scanf("%d",&num);
scanf("%c",&ch);//This is skipped but its accept input when space as scanf(" %c",&ch)
}
答案 0 :(得分:1)
scanf("%c", &ch);
如果您没有像scanf(" %c", &ch);
那样写,那么它将从前一个scanf中读取'\ n',因为您正在输入数字并按Enter键。这样它会忽略'\ n'并等到你输入一个有效的字符。