2009-08-16 70 views
1

有没有什么办法可以在不使用Windows消息或std :: cin流的情况下在控制台中获得最后一次按键?我听说标准库中有一个函数。解决方案应该尽可能便携。感谢您的帮助提前。控制台获取按键没有Windows消息C++

+1

你关心最后一个*字符*还是最后一个*按键*(例如包括shift,控制和箭头键等修饰符)?如果它是按键,那么就简单的便携性而言,你几乎没有运气。 – 2009-08-16 16:59:33

回答

1

还有conio.h但它不是技术上的标准。在Linux上,我的第一个Google命中暗示termios.h

0

不是真正的便携式,但您可以使用GetAsyncKeyState甚至从Windows下的控制台应用程序访问当前的关键状态。 技术性更强,同样也是Windows特有的,将使用SetWindowsHookEx将键盘挂接到系统中的回调函数中,该函数只存储最后一次按下的键。

但你的基本问题:控制台+可移植性 - 似乎暗示cin是你最好的选择 - 你需要什么cin不提供?

0

你有没有考虑过使用像pdcurses这样的curses库?这就是我所知道的唯一一个将执行控制台管理的跨平台库。