这是我的代码:
#include <stdio.h>
int main()
{
char a = getchar();
printf("char: %c", a);
}
我正在使用gcc
进行编译。
运行时,即使在控制台上输入一个字符后,程序也会等待输入。它不应该立即退出并打印角色吗?我在Ubuntu for Windows上运行它,如果这可以有所不同。
答案 0 :(得分:5)
stdin
是您的默认输入流。 stdin
的默认缓冲模式是行缓冲。所以它等待输入\n
。然后只有从输入流中读取的内容然后getchar
获取输入并使用它。
答案 1 :(得分:3)
操作系统通常会缓冲控制台输入,直到输入新行,这样您的程序之前甚至都不会收到单个字符。可能你无能为力。