上下左右 方向键的ASCII码值是多少? 5

c语言里,小弟用ch=getch()和printf()试图求上下左右的ASCII码值,但每次都出现两个值,请高手告诉我答案.thankyouverymuch!!!!!!!... c语言里,小弟用ch=getch()和printf()试图求上下左右的ASCII码值,但每次都出现两个值,请高手告诉我答案.
thank you very much!!!!!!!!!
展开
 我来答
zdingyun
2015-08-15 · 知道合伙人软件行家
zdingyun
知道合伙人软件行家
采纳数:15429 获赞数:48170
1982年上海业余工业大学化工系毕业 现退休

向TA提问 私信TA
展开全部

键盘上下左右 方向键的键码(keyCode)是38、40、37和39,或者称虚拟ASCII值是38、40、37和39。

下图是虚拟ASCII值:

keyCode(键码),指定与引发事件的键关联的Unicode的键码。此属性旨在与所述的onkeydown,的onkeyup和onkeypress事件的事件中使用。

句法:

object.keyCode[=keyCode]

设置:

这个读写属性可以设置为Unicode代码。如果没有击键造成的事件是零。

VB6.0可用以下代码测试:

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
    Debug.Print KeyCode
End Sub

参考:http://baike.baidu.com/link?url=z9Q9IcvNHtfWAcNwsIGH1d5tfJPLBT8JFxhO2btWaxDNYTnXujcRhjWApwSsoNPuyFKP1nZuS2LREZy-otw_Gm64LFqTa1G__-CtMh64CxQ0l3NzI50QTsQcRv8PA7hYpTdGhyab6c-uZg1d2vWdGK

TableDI
2024-07-18 广告
VLOOKUP 是 Excel 中一个非常实用的函数,它允许用户在一个区域或表格的首列中查找特定值,并返回同一行中指定列中的值。当进行跨表匹配时,你可以使用 VLOOKUP 函数将两个不同表格中的数据关联起来。通过指定查找值、表格数组、列号... 点击进入详情页
本回答由TableDI提供
wc340803
推荐于2017-12-15 · TA获得超过231个赞
知道答主
回答量:73
采纳率:33%
帮助的人:5.9万
展开全部
switch(getch()){
   case 224:                    //方向键区的ASCII码
     switch(getch()){
        case 72:
           //上
           break;
        case 80:
            //下 
            break;
        case 75:    
            //左
           break;
         case 77:
           //右
           break;   
     }       
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友555fcd0
2006-05-05 · TA获得超过8.5万个赞
知道大有可为答主
回答量:3万
采纳率:63%
帮助的人:1.3亿
展开全部
在c语言里方向键的确定:
for(;;)
if(kbhit()) ;如果有键按下
{
str=getch();
printf("%C",str);
printf("%d"str);
}
就可以得到输入的什么东西了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
梁蒙京奇胜
2020-05-28 · TA获得超过3453个赞
知道大有可为答主
回答量:3121
采纳率:28%
帮助的人:196万
展开全部
switch(getch()){
case 224: //方向键区的ASCII码
switch(getch()){
case 72:
//上
break;
case 80:
//下
break;
case 75:
//左
break;
case 77:
//右
break;
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
smile_1234568
2020-12-07
知道答主
回答量:25
采纳率:0%
帮助的人:1.4万
展开全部

linux下通过设置终端不回显(不用按回车即可输入),  my_getch()主要是对getchar需要按回车才显示进行的修改   来自github

if (my_getch() == 27)

{

    if (my_getch() == 91)

    {

        switch(my_getch())

        {

case 65 : return UP;

case 66 : return DOWN;

case 67 : return RIGHT;

case 68 : return LEFT;

default : break;

            }

        }

}


char my_getch()

{

        int c = 0;  

int res = 0;

        struct termios org_opts, new_opts;

        res = tcgetattr(STDIN_FILENO, &org_opts);

        assert(res == 0);

        memcpy(&new_opts, &org_opts, sizeof(new_opts));

        new_opts.c_lflag &= ~(ICANON | ECHO | ECHOE | ECHOK | ECHONL | 

  ECHOPRT | ECHOKE | ICRNL);

        tcsetattr(STDIN_FILENO, TCSANOW, &new_opts);//设置终端属性

        c=getchar();

        res=tcsetattr(STDIN_FILENO, TCSANOW, &org_opts);//恢复终端属性

        assert(res == 0);

        return c;

}

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式