【发布时间】:2016-12-07 20:29:44
【问题描述】:
正如我在标题中所说,我如何区分与 getch() 具有相似响应的两个击键。在这个代码块中,K 和左箭头键的 getch() 响应是相同的,所以当我输入大写 k 时 case 75 有效。我该如何解决?我也遇到了这个问题。
while(1){
ch1=getch();
switch( ch2 = getch())
{
if(ch1 != 0xE0)
{
default:
for(i=' ';i<'}';i++)
{
if(i == ch2)
{
/*SOME STUFF*/
printf("%c" , iter->x);
}
break;
}
else
{
case 72: printf("UP WAS PRESSED\n");
break;
/*Some other stuff*/
}
}
}
【问题讨论】:
-
不代表可打印字符的键(如左箭头键)没有有 ASCII码。
-
但是当我输入大写 K 时,它不起作用。
-
不要同时使用 C++ 和 C 来标记您的问题:它们是不同的语言,一种语言的问题解决方案在另一种语言中看起来并不相同。
-
"如何区分两个具有相同 ASCII 码的变量" --> " 如何区分来自
getch()的两个具有相似响应的击键" -
getch是一个窗口函数。作为光标控件的键或 Fn 键返回 两个 连续代码。第一个是0或224。但是您必须定义int ch2,因为这是来自getch()的返回值。你还没有显示你的变量类型。