我正在使用名为Code block的IDE。每当我使用putchar和getchar来显示通过putchar输入的单词中的单个字符时,整个单词都会显示。为什么会这样?是否有特定的事情,我必须做IDE。我已经尝试将类型更改为int但问题仍然存在。
main()
{
char c;
c= getchar();
putchar(c);
return 0;
}
答案 0 :(得分:1)
键盘是行缓冲。
这意味着操作系统只有在获得整行后才会向您的程序发送数据。
当您键入"foobar<ENTER>"
第一个&#39; f&#39;只有在您的程序看到操作系统看到ENTER后才能看到...然后所有字符(包括ENTER)都可以非常快速地用于您的程序(您只能获得第一个&#39; f&#39 ;但是,除非你写一些循环)。
有一些方法可以让键盘在&#34;无缓冲&#34;模式,但通常,它们比它们的价值更麻烦。查看ncurses。