2012-02-13 69 views
1

我想检查按键事件,如按下/按下...键常量列表

但是,我创建的函数将获得一个“无符号字符”。我可以用key == 'w'来检查像W/A/S/D这样的钥匙,但我不知道如何检查其他钥匙。

有没有可用字符的列表,比如“\ n”?

+0

检查:http://www.asciitable.com/ – yasar 2012-02-13 18:45:09

+0

你能改说你的问题吗?对于“char-types”,你的意思是'char','char16_t'和'char32_t',还是你的意思是代码点? (对不起,我还没有足够的声望进行投票) – 2012-02-13 18:45:49

回答

4

您可以找到一个字符转义序列列表here

注意某些键必须使用glutSpecialFunc()/glutSpecialUpFunc(),对于其处理程序的适用以下处理:

关键参数可以取以下定义的常数值之一:

  • GLUT_KEY_F1 ,GLUT_KEY_F2,...,GLUT_KEY_F12 - F1到F12键
  • GLUT_KEY_PAGE_UP,GLUT_KEY_PAGE_DOWN - Page Up和Page Down键
  • GLUT_KEY_HOME,GLUT_KEY_END - Home和End键
  • GLUT_KEY_LEFT,GLUT_KEY_RIGHT,GLUT_KEY_UP,GLUT_KEY_DOWN - 箭头键
  • GLUT_KEY_INSERT - Insert键
0

C++中的自然字符类型使用ASCII字符。这里是一个列表:http://www.asciitable.com/

您可以检查像换行是这样的:

if (key == '\n') 
+0

简单的'char'类型可以用来保存字符(尽管它是一个整数类型)。字符的编码是实现和locale相关的,但从我看过ASCII以来已经过了很多年。 (今天最常见的是UTF-8,但ISO 8850-1仍然普遍存在,并且在不久之前几乎普及。) – 2012-02-13 18:51:27

+0

我的印象是每个架构上的字符总是一个字节。你如何在一个字节中填入UTF-8字符? – Oleksi 2012-02-13 18:55:53

+1

多字节UTF-8序列存储在多个“char”中。 C++允许执行字符集为多字节编码(与执行宽字符集相反,其中单个wchar_t必须能够表示所选字符集中的所有代码点) – bames53 2012-02-13 19:03:48

0

你问逃生序列。

Here是C++非图形字符及其转义序列的完整列表。

0

如果我理解正确的话,也越来越没有系统无关的方式 您需要的信息。我认为你所寻找的是一个 扫描码,大多数系统将有一种方式来获得它在下的 Unix,如果你正在 窗口中运行,它将在X库中出现,并且在Windows下,它很可能在窗口库中为 。你会得到的是扫描码加上一些位,指示诸如shift,control和alt等各种键的状态;并且每次改变任何密钥状态时,窗口系统都会生成一个事件。

如果您没有在窗口中运行(或在您自己的窗口中),它仍然可以 获得某种键状态,如果您直接从终端读取 ,虽然我不是对可能性太熟悉了。 (记住历史,输入接口被设计为 读通过串行线,而这类信息根本不是 在C++中。)