我一直在做一些阅读,我看到我可以使用getch()来进行击键。我所看到的是,这被认为是不好的做法,但我看到了相互矛盾的观点。我正在为我的班级编写一个控制台应用程序,并希望能够根据按下的箭头键在屏幕上移动标记(*)。 getch()是解决这个问题的正确方法,还是有更好的方法来捕获它。我希望他们能够推动箭头,不需要推入或任何东西。我不需要专门的代码,我只是想知道我是否应该避免使用getch(),如果是的话,那些类型的想法有什么功能。
答案 0 :(得分:1)
getch()
不是C或C ++中的标准函数。它存在于一些过时的编译器中,例如Turbo C,它也在某些常用的库中定义,例如curses,但无论如何它都是C函数,而不是C ++。对于C ++,您应该坚持使用标准C ++ I / O.如果由于某些原因你不能这样做,那么选择最便携的选项,例如诅咒。
答案 1 :(得分:1)
您希望以非规范模式从终端读取。使用tcsetattr()关闭ICANON标志。
答案 2 :(得分:0)
如果有效,请使用getch()。为什么不呢?
答案 3 :(得分:0)
在Windows上,您可以使用与ncurses兼容的pdcurses:http://pdcurses.sourceforge.net/。