ncurses:使用键盘检测可打印字符

时间:2013-08-12 01:42:54

标签: perl ncurses

我将keypad设置为1,因为我希望更多地控制输入的字符(例如,在下面的示例中,我想要检测KEY_DOWN。如果我{{1},这不起作用离开)。但是,我需要检测字符是否可打印。我以为我可以使用keypad,但我误解了一些东西。例如,如果我运行以下MWE并输入退格,我得到[[:print:]]的输出,而我想输出263。我可以尝试通过调节not printable来解决这个问题,但这似乎是一个我应该避免的黑客攻击,我想学习正确的方法。

length(character) == 1

请注意,我是一个诅咒和输入字符处理的新手(你不需要怜悯批评,但我这样说,所以你知道我不知道我在做什么,将会是感谢任何详细的解释。)

1 个答案:

答案 0 :(得分:0)

getch不会返回普通的[[:print:]]包含的字符代码,用于特殊键(它适用于字母,数字等)。

要测试退格键,您需要测试KEY_BACKSPACE,这是您获得的263。

我认为任何特殊密钥代码都不可打印,因此任何大于或等于KEY_MIN(最小特殊密钥代码)的返回代码都不可打印。可以使用[[:print:]]

检查其他值