为什么Xcode似乎跳过第二次scanf()调用?

eps*_*nes 2 c xcode scanf

我是Xcode开发工具的新手.为了调试问题,我尝试了一个非常简单的代码:

int main()
{char N;
 char M;
 scanf("%c",&N);
 scanf("%c",&M);
 printf("%c",N);
 printf("%c",M);
}
Run Code Online (Sandbox Code Playgroud)

但问题是编译器似乎没有读取第二个scanf.所以我可以在控制台中输入一个字符,然后程序停止.令人惊讶的是,当我用"int"代替"char"编写相同的代码时,它的工作正常.有人知道什么是错的吗?

Gre*_*ill 6

在第一个scanf中输入一个字符后你按Enter键,对吧?Enter是第二个scanf读取的内容.并由第二个printf打印.

您尚未显示此程序的输出,但如果您将printf格式更改为%d\nfrom %c,那么如果您键入"a"并按Enter键,则可能类似于以下内容:

97
10
Run Code Online (Sandbox Code Playgroud)

那个10是Enter(换行符或换行符)的字符代码.