3
默认情况下,您无法在不等待用户按下输入的情况下在Unix中获得终端输入。 我怎样才能立即获得输入?我在debian Linux上使用gdc,所以我不能使用ncurses。 谢谢。如何在Linux下使用D编程语言取消缓冲输入?
默认情况下,您无法在不等待用户按下输入的情况下在Unix中获得终端输入。 我怎样才能立即获得输入?我在debian Linux上使用gdc,所以我不能使用ncurses。 谢谢。如何在Linux下使用D编程语言取消缓冲输入?
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
然后你就可以立即使用的输入。
“我在debian Linux上使用gdc,所以我不能使用ncurses”究竟是什么让你觉得呢? –
http://stackoverflow.com/questions/1630597/how-to-use-a-c-library-from-d –
我想知道同样的问题... Ncurses现在也可以在Windows上使用。 – DejanLekic