默认情况下,无需等待用户按Enter即可在Unix中获取终端输入。 如何立即获得输入?我在debian Linux上使用gdc所以我不能使用ncurses。 感谢。
答案 0 :(得分:3)
ncurses是一个很好的解决方案,几乎可以用于任何编译器的任何Linux安装......
但是如果你不想使用ncurses,还有其他一些选择:
查看文件底部附近的version(Demo) void main()
。 RealTimeConsoleInput
为您提供一个带有即时输入和其他信息的事件循环(如果需要)(鼠标,调整大小等)。
tcgetattr
和tcsetattr
调用更改终端模式,然后正常执行其他操作。对于函数,您需要import core.sys.posix.termios;
和import core.sys.posix.unistd;
,其余部分与C中相同。以下是如何做到这一点:
termios old;
tcgetattr(1, &old);
scope(exit) tcsetattr(1, TCSANOW, &old); // put the terminal back to how it was
auto n = old;
n.c_lflag &= ~ICANON; // turn off canonical mode
tcsetattr(1, TCSANOW, &n); // do the change
然后你可以立即使用输入。