当前位置: 首页 > 知识库问答 >
问题:

按住屏幕以接受箭头键

温峻熙
2023-03-14

对于使用箭头键,首先必须存储它以分析它。这就是为什么我使用scanf来存储它。但是当我尝试运行这段代码时,当我按下向上键时,它显示^[[[A,当我按下回车键时,这个^[[A删除并退出程序,而不打印printf的printf语句("%s", c).printf("UP\n").

#include <stdio.h>
int main()
{
    char c[50];
    scanf("%s",&c);
    printf("%s",c);
    if (getch() == '\033'){ // if the first value is esc
        getch();// skip the [
        getch();// skip the [
        switch(getch()) { // the real value
            case 'A':
                printf("UP\n");
                break;
            case 'B':
                printf("DOWN\n");
                break;
        }
    }
    return 0;
}

共有1个答案

凌蕴藉
2023-03-14

如果您使用ncurses库,您会发现这很容易。只需浏览文档,了解如何安装它。安装后,阅读与键盘接口部分

下面是一个示例代码

#include <ncurses.h>
int main()
{
    int ch;

    initscr();
    raw();
    keypad(stdscr, TRUE);
    noecho();

    while(1)
    {
        ch = getch();

        switch(ch)
        {
            case KEY_UP: 
                printw("\nUp Arrow");
                break;
            case KEY_DOWN: 
                printw("\nDown Arrow");
                break;
            case KEY_LEFT: 
                printw("\nLeft Arrow");
                break;
            case KEY_RIGHT: 
                printw("\nRight Arrow");
                break;
        }

        if(ch == KEY_UP)
            break;
    }

    endwin();
}
 类似资料:
  • 问题内容: 我正在尝试创建一个简单游戏的开始。我要做的第一件事是将图形导入到我的代码中,然后在屏幕上移动它。我能够在屏幕上画一个球并四处移动,但是当我从文件导入图形时,无法四处移动。我想念什么或做错什么? 我的司机是在另一个班级,如下所示: 问题答案: 这里有两个大问题: 您正在从中读取文件。 永远 不要这样做,因为这会不必要地减慢绘图速度。可能在构造函数中读取一次图像,然后在图形中使用存储的im

  • 我试图模拟在rad grid控件(Telerik)的文本区域中按下左右箭头键。 我有一个特定于浏览器Firefox的错误,其中选项卡事件(修复了此部分)和箭头键将不起作用。所有其他浏览器工作正常。 因此,作为一种解决方法,我想使用JavaScript或jquery模拟箭头键。 下面是我使用包含的选项卡事件修复程序所做的工作。除此之外,我还检查按键代码37(这是左箭头键)是否被按下。此时,我想模拟文

  • 我正在尝试用Agora构建一个视频通话应用程序,我需要在用户呼叫时显示像WhatsApp这样的接受屏幕,如果应用程序退出,我需要在用户呼叫时显示呼叫屏幕,我尝试了很多东西,但都不起作用,我试图做我颤抖,但这方面没有太多信息,请帮助我

  • 问题内容: 我正在尝试创建类似于konami代码“向上,向上,向下,向下,a,b,a,b,enter”的交互->发生了某些情况。 是否可以使用ng-keypress收听箭头按键?似乎不起作用? 的HTML: s 这不会注销箭头键事件吗? 我是否必须在窗口上推出自己的听众?如果是这样,我如何才能做到这一点? 问题答案: 演示 编辑 从更改为 DEMO

  • 我正在尝试在Google Drive上备份我的android应用程序的应用程序数据。因此,我请求访问https://www.googleapis.com/auth/drive.appdata, https://www.googleapis.com/auth/drive.file使用google_sign_in包的作用域。 我在Google Developer Console上创建了一个项目,启用了

  • 问题内容: 如何检测何时按下箭头键之一?我用它来找出: 尽管它适用于所有其他键,但不适用于箭头键(可能是因为默认情况下浏览器应该在这些键上滚动)。 问题答案: 箭头键仅由触发,而不由触发。 关键代码为: left = 37 up = 38 right = 39 down = 40