2
int main()
{
    int r, c;
    r = getchar();
    c = getchar();
    putchar(r);
    putchar(c);
    printf("\n");
    return(0);
}

读入后r,程序输出r并退出。我希望它要求c并输入它,但它为什么不这样做?

4

2 回答 2

3

您是在同一行还是在 2 行上输入字符?

getchar()将等到您按下回车键,然后开始解析字符。如果您在 2 个不同的行上输入了 2 个字符,它将读取第一个字符,然后是\n字符

我的意思是,以下输入:

a
b

相当于"a\nb"

getchar()将抓住\n而不是b,并打印a\n\n

您想键入两个字符,然后才按回车键。

于 2011-04-10T02:04:33.447 回答
2

您可能正在输入X+ Enter。第一个getchar()读取字符X,第二个getchar()读取按 Enter 时生成的换行符。在不按 Enter 的情况下键入两个字符。

于 2011-04-10T02:05:16.570 回答