从cin获取方向键
Getting arrow keys from cin
我相信以前一定有人问过这个问题,但是快速搜索一下什么也没找到。
我如何在c++中获得cin
的箭头/方向键?
以前确实有人问过这个问题,答案是你做不到。
c++没有键盘或控制台的概念。它只知道不透明的输入数据流。您的物理控制台预处理和缓冲您的键盘活动,只发送熟数据到程序,通常逐行。为了直接与键盘对话,你需要一个特定于平台的终端处理库。
在Linux上,这通常是用ncurses
或termcap
/terminfo
库完成的。在Windows上,你可以使用pdcurses
,或者也许是Windows API(虽然我不熟悉这方面)。
图形应用程序框架,如SDL, Allegro, irrlight或Ogre3D也提供了完整的键盘和鼠标处理。
如果你不介意使用位于conio.h
中的getch()
,这里有一个指针。
#include <stdio.h>
#include <conio.h>
#define KB_UP 72
#define KB_DOWN 80
#define KB_LEFT 75
#define KB_RIGHT 77
#define KB_ESCAPE 27
int main()
{
int KB_code=0;
while(KB_code != KB_ESCAPE )
{
if (kbhit())
{
KB_code = getch();
printf("KB_code = %i n",KB_code);
switch (KB_code)
{
case KB_LEFT:
//Do something
break;
case KB_RIGHT:
//Do something
break;
case KB_UP:
//Do something
break;
case KB_DOWN:
//Do something
break;
}
}
}
return 0;
}
相关文章:
- C++为构建时间获取QDateTime的可靠方法
- lambda参数转换为constexpr技巧,然后获取带链接的数组
- 如何使用 < 和 > 命令获取 c++ 中的输入和输出?
- 使用指针从C++中的数组中获取最大值
- 如何获取std::result_of函数的返回类型
- 如何在openssl-ecc中获取十六进制格式的私钥
- 使用Unreal C++获取VR耳机的世界位置/方向
- 获取日期异步信号安全吗?如果在信号处理程序中使用,它会导致死锁吗
- 从C字符串中获取奇怪的字符串长度
- 为什么我的for循环不能正确获取argv
- 从python中调用C++函数并获取返回值
- 如何获取一个数字的前3位
- 获取字符串的长度并将其分配给数组
- 无法获取菜单选择以运行函数.C++
- 从图像中的像素中获取轴承矢量(方向)
- 如何获取设备方向
- 在C++API中获取无界方向
- QML:如何在不实际移动任何可见组件的情况下,在鼠标Aeria顶部获取鼠标移动的方向
- 从cin获取方向键
- 从像素补丁OpenCV中获取方向直方图