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

时间:2012-05-14 01:48:53

标签: c xcode scanf

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

int main()
{char N;
 char M;
 scanf("%c",&N);
 scanf("%c",&M);
 printf("%c",N);
 printf("%c",M);
}

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

1 个答案:

答案 0 :(得分:6)

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

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

97
10

该10是Enter(换行符或换行符)的字符代码。