我是Xcode开发工具的新手。为了调试问题,我尝试了一个非常简单的代码:
int main()
{char N;
char M;
scanf("%c",&N);
scanf("%c",&M);
printf("%c",N);
printf("%c",M);
}
但问题是编译器似乎没有读取第二个scanf。所以我可以在控制台中输入一个字符,然后程序停止。令人惊讶的是,当我用“int”代替“char”编写相同的代码时,它的工作正常。有人知道出了什么问题吗?
答案 0 :(得分:6)
在第一个scanf中输入一个字符后你按Enter键,对吗? Enter是第二个scanf读取的内容。并由第二个printf打印。
您尚未显示此程序的输出,但如果您将printf格式从%d\n
更改为%c
,那么如果您键入“a”并按Enter键,则可能类似于以下内容:
97
10
该10是Enter(换行符或换行符)的字符代码。