为什么getchar在输入一个字符后等待?

upI*_*oud 0 c input getchar

这是我的代码:

#include <stdio.h>

int main()
{
        char a = getchar();
        printf("char: %c", a);
}
Run Code Online (Sandbox Code Playgroud)

我正在编译这个gcc.

运行时,即使在控制台上输入一个字符后,程序也会等待输入.它不应该立即退出并打印角色吗?我在Ubuntu for Windows上运行它,如果这可以有所作为.

use*_*738 5

stdin是您的默认输入流.默认缓冲模式stdin是行缓冲.所以它等待\n进入.然后只有从输入流中读取的内容然后getchar获取输入并使用它.