0

我正在编写一个函数来获取用户输入并根据用户输入的内容执行操作。我正在使用一个 case 语句来检查用户输入的内容。

我很难看到用户是否按下了 home、end、ins 和 del。HOME、INSERT、DELETE 和 END 等默认变量似乎没有效果,但使用 LEFT 和 RIGHT 的箭头键有效果。我在 GNU/Linux 中这样做。我不确定我做错了什么。

任何帮助将不胜感激。

4

2 回答 2

0

这些定义了键的扫描代码 (IBM PC)。所有数字均为十进制。

#define PAGE_UP     73
#define HOME        71
#define END         79
#define PAGE_DOWN   81
#define UP_ARROW    72
#define LEFT_ARROW  75
#define DOWN_ARROW  80
#define RIGHT_ARROW 77
#define F1          59
#define F2          60
#define F3          61
#define F4          62
#define F5          63
#define F6          64
#define F7          65
#define F8          66
#define F9          67
#define F10         68

#include <iostream>
#include <conio.h>

以下是 Linux 扫描码: http: //www.comptechdoc.org/os/linux/howlinuxworks/linux_hlkeycodes.html

于 2014-05-26T07:20:51.380 回答
0

以下是问题:

#include <stdio.h>

//Compiled on GNU/Linux
//By: Saulius Grybas


int main()
{
        int key;
        bool done = false;

    while (!done)
    {

        key = getchar();

        switch (key){
                case HOME:
                        //Home key is pressed / perform action
                        done = true;
                        break;
               case END:
                        //END key is pressed / perform action
                        done = true;
                        break;
               case DEL:
                        //DEL key is presed / perform action
                        done = true;
                        break;
                case BACKSPACE:
                        //backspace is pressed / perform action
                        done = true;
                        break;
                default:
                        done = false;
                        break;
         }
                printf ("%d%s\n", key, " - Integer of key is pressed!");
    }

    return 0;
}
于 2013-09-28T23:57:29.403 回答