getchar()和putchar() 在不同编译器下结果不同
程序如下:
#include
int main()
{
char ch=0;
while((ch=getchar()) && ch!= 'e'){
putchar(ch);
}
return 0;
}
使用dev c++:在控制台输入 ww 按下回车键。 控制台输出ww和换行
使用clion:在控制台下输入ww 按下回车。控制台不输出任何信息。直到输入'e'并按下回车之后,控制台才显示'e'之前的所有输入信息
在clion上换了好几种C语言标准,也不能达到dev c++里的效果
求问是什么原因导致了这种差别?
clion
下应该是putchar
把输出字符放到缓存里,但是还没有flush到控制台。如果你需要立即回显,你可以调用fflush(stdout);
#include <stdio.h>
int main()
{
char ch = 0;
while ((ch = getchar()) && ch != 'e')
{
putchar(ch);
fflush(stdout);
}
return 0;
}