2

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

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

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

4

1 回答 1

6

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

您还没有显示该程序的输出,但是如果您将 printf 格式更改为%d\nfrom %c,那么如果您键入“a”并按 Enter,它可能类似于以下内容:

97
10

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

于 2012-05-14T01:50:30.047 回答