我将keypad
设置为1,因为我希望更多地控制输入的字符(例如,在下面的示例中,我想要检测KEY_DOWN
。如果我{{1},这不起作用离开)。但是,我需要检测字符是否可打印。我以为我可以使用keypad
,但我误解了一些东西。例如,如果我运行以下MWE并输入退格,我得到[[:print:]]
的输出,而我想输出263
。我可以尝试通过调节not printable
来解决这个问题,但这似乎是一个我应该避免的黑客攻击,我想学习正确的方法。
length(character) == 1
请注意,我是一个诅咒和输入字符处理的新手(你不需要怜悯批评,但我这样说,所以你知道我不知道我在做什么,将会是感谢任何详细的解释。)
答案 0 :(得分:0)
getch
不会返回普通的[[:print:]]
包含的字符代码,用于特殊键(它适用于字母,数字等)。
要测试退格键,您需要测试KEY_BACKSPACE
,这是您获得的263。
我认为任何特殊密钥代码都不可打印,因此任何大于或等于KEY_MIN
(最小特殊密钥代码)的返回代码都不可打印。可以使用[[:print:]]