key_enter vs' n'?
题
当我使用pdcurses时,我尝试在按下Enter键时进行一段时间的循环退出 while(key != KEY_ENTER)
, ,While循环永远不会退出。但是,当我尝试与 while((char)key != '\n')
, ,每当我按Enter时,它都会成功退出。为什么 '\n'
工作而不是工作 KEY_ENTER
?
顺便提一句, key
是一个
我希望这是代码的相关行:
int key;
while((char)key != '\n') {
key = getch();
...
}
解决方案
getch()
是由C运行时库的ANSI C标准定义的函数。
在大多数系统(例如Windows,Linux等)上,都实现此功能以返回 '\n'
当用户按Enter。为了进行比较,在Windows上,键盘本身(ENTER)可以表示为键代码 VK_ENTER
.
PDCurses将关键代码转换为您的ASCII值。
如果您首先调用pdcurses函数,则可以获取所需的密钥值 raw(); nonl();
. 。另外,您可能应该使用 wgetch()
对于新代码。
其他提示
KEY_ENTER == 0x157, '\n' == 0xA
' n'是标准的ASCII newline,而Key_enter表示键盘代码。看 PDCURSES代码.
有关更多信息,您应该发布代码的相关部分。
不隶属于 StackOverflow