我想两次getchar,但我不能

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

读入r ,程序输出r并退出。 我希望它要求c并输入它但是它怎么没有那样做?

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

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

我的意思是,以下输入:

 a b 

相当于"a\nb"

getchar()将获取\n而不是b ,并打印a\n\n

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

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