我想两次getchar,但我不能

时间:2011-04-10 02:01:02

标签: c getchar

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

在读入r后,程序输出r并退出。我希望它要求c并输入它,但它怎么会这样做呢?

2 个答案:

答案 0 :(得分:3)

您是在同一行或两行输入字符吗?

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

我的意思是,以下输入:

a
b

相当于"a\nb"

getchar()会抓取\n而不是b,并打印a\n\n

您想要输入两个字符,然后才输入。

答案 1 :(得分:2)

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