这个用C语言编写的 easy 代码不起作用,我不明白为什么。如果我只读“ n”,或者只读“ ch”,那么它可以工作,否则,如果我尝试同时读取它们,则不会让我读“ ch”。会发生什么,我该如何运作?
#include <stdio.h>
int main()
{
int n;
char ch;
printf("n=");
scanf("%d",&n);
printf("ch="); //when i press Build and Run it won't let me read "ch"??? why?
scanf("%c",&ch);
return 0;
}
答案 0 :(得分:2)
使用%d
读取数字时,输入缓冲区中将保留换行符。然后,当您使用%c
读取字符时,它将立即读取换行符,因此不会提示您进行更多输入。
与%d
格式说明符会丢弃任何前导空格一样,%c
格式说明符不会。
在%c
之前添加一个前导空格以消耗所有剩余的空格:
scanf(" %c",&ch);