我正在编写一个函数来获取用户输入并根据用户输入的内容执行操作。我正在使用一个 case 语句来检查用户输入的内容。
我很难看到用户是否按下了 home、end、ins 和 del。HOME、INSERT、DELETE 和 END 等默认变量似乎没有效果,但使用 LEFT 和 RIGHT 的箭头键有效果。我在 GNU/Linux 中这样做。我不确定我做错了什么。
任何帮助将不胜感激。
我正在编写一个函数来获取用户输入并根据用户输入的内容执行操作。我正在使用一个 case 语句来检查用户输入的内容。
我很难看到用户是否按下了 home、end、ins 和 del。HOME、INSERT、DELETE 和 END 等默认变量似乎没有效果,但使用 LEFT 和 RIGHT 的箭头键有效果。我在 GNU/Linux 中这样做。我不确定我做错了什么。
任何帮助将不胜感激。
这些定义了键的扫描代码 (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
以下是问题:
#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;
}