C++ 在C++;

C++ 在C++;,c++,input,capture,keystrokes,C++,Input,Capture,Keystrokes,我一直在阅读,我发现我可以使用getch()来击键。我所看到的是,这被认为是不好的做法,但我看到了相互矛盾的意见。我正在为我的类编写一个控制台应用程序,希望能够根据所按下的箭头键在屏幕上移动一个标记(*)。getch()是解决这个问题的正确方法,还是有更好的方法来捕获它。我希望他们只需要按下箭头,而不需要按下回车键或其他任何键。我不需要特别的代码,我只想知道我是否应该避免GETCHE(),如果是这样的话,对于这种类型的想法有什么功能。 代码> GETCHEL()/Cux>不是C或C++中的标准函

我一直在阅读,我发现我可以使用getch()来击键。我所看到的是,这被认为是不好的做法,但我看到了相互矛盾的意见。我正在为我的类编写一个控制台应用程序,希望能够根据所按下的箭头键在屏幕上移动一个标记(*)。getch()是解决这个问题的正确方法,还是有更好的方法来捕获它。我希望他们只需要按下箭头,而不需要按下回车键或其他任何键。我不需要特别的代码,我只想知道我是否应该避免GETCHE(),如果是这样的话,对于这种类型的想法有什么功能。

<代码>代码> GETCHEL()/Cux>不是C或C++中的标准函数。它在一些过时的编译器中找到,例如,它也被定义在某些常用的库中,例如,但在任何情况下,它都是C函数,而不是C++。对于C++,你可能只需要坚持标准C++ I/O。如果你不能因为某些原因来做这个,那么就去选择最容易移植的选项,例如诅咒。< /P> < P>你想从非规范模式的终端读取。使用tcsetar()关闭ICANON标志。

如果有效,请使用getch()。为什么不??Windows上你可以使用PDCISES:这是与NCURESS兼容的。< /P>有没有C++标准的方法来捕获键击,因为它们是被键入的,或者C++总是需要输入缓冲的吗?@ Br:没有,在标准C++中没有这样的方法。我认为任何解决方案都是OS特定的。或者需要一个库,比如curses或ncurses。