我永远不会记得我是怎么做的,因为它对我来说很少见.但是在C或C++中,从标准输入读取字符而不等待换行符的最佳方法是什么(按回车键).
理想情况下,它也不会将输入字符回显到屏幕上.我只想捕捉击键而不影响控制台屏幕.
我的主要目的是在getchar获得角色后立即返回,而不是等待ENTER密钥.我试过这个
int main()
{
setvbuf(stdin,NULL,_IONBF,0);
getchar();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
将其与原型进行比较 setvbuf
setvbuf ( FILE * stream, char * buffer, int mode, size_t size );
Run Code Online (Sandbox Code Playgroud)
它应该设置stdin为无缓冲模式.
但仍然getchar()在等待ENTER
我见过这样的相关帖子
这表明制作stdin无缓冲的替代方法.但我很想知道为什么setvbuf方法不起作用