在C ++控制台程序中,我发现了如何在Windows上检测和箭头键,我发现了很多其他与问题无关的东西(尽管我认为是很好的搜索术语) ,但我想知道是否有一种与平台无关的方法来检测箭头按键。一个不错的第二位是如何检测unix和mac中的箭头按键。代码片段将不胜感激。
答案 0 :(得分:2)
没有跨平台的方法来实现它,因为它没有被C或C ++标准定义(尽管可能有些库在不同平台上编译时会消除差异)。
我相信您在POSIX盒子上寻找的库是curses,但我自己从未使用过它 - 我可能错了。
请注意,控制台程序(即gnome-terminal
或konsole
或xterm
)完全有可能将这些密钥用于其他功能。
答案 1 :(得分:0)
正如比利所说,没有标准的跨平台方式来实现它。
我个人使用这个(面向游戏的)库来进行所有输入,跨平台win / linux / mac:http://sourceforge.net/projects/wgois/
答案 2 :(得分:0)
您可以使用SDL2来实现跨平台。
示例代码:
#include <SDL2/SDL.h>
int main()
{
SDL_Event event;
SDL_PollEvent(&event);
if(event.type == SDL_KEYDOWN)
{
// Move centerpoint of rotation for one of the trees:
switch(event.key.keysym.sym)
{
case SDLK_UP:
// do something
break;
case SDLK_DOWN:
// do something
break;
case SDLK_LEFT:
// do something
break;
case SDLK_RIGHT:
// do something
break;
case SDLK_ESCAPE:
// do something
return 0;
default:
break;
}
}
return 0;
}