Kev*_*ong 6 c console-application getch mingw32 conio
#include <conio.h>
int main (void)
{
for (;;)
{
unsigned char ch = getch();
printf ("0x%02X\n", ch);
}
}
Run Code Online (Sandbox Code Playgroud)
我想获得扫描码.
以下是维基百科的描述:
Reads a character directly from the console without buffer, and without echo.
Run Code Online (Sandbox Code Playgroud)
当我按下时Del,它显示0xE0 0x53.
当我按下Ctrl+时PgUp,它显示0xE0 0x86.
虽然有些与表格相同,但它显示的大部分值都与之不同.
那么,getch()真的能获得扫描码吗?
这是扫描码表(第2组,最常用)
我在 VS 2012 (C++) 中运行了一个控制台应用程序,得到了与你相同的结果。它确实说 getch() 已被弃用,我应该使用 _getch(),但这没有什么区别。
然后我在这里找到了一个与其匹配的表格(最右边的列)。对我来说,“白色”键使用 Shift 和数字键盘等效项,“灰色”键是独立的向上翻页、向下翻页等。我发现的一个差异是在数字键盘上输入的是与常规输入键相同。
http://www.itlnet.net/programming/program/Reference/msc/ng7d68f.html
我不知道这个表来自哪里,除非您单击“关于指南”,它显示“Microsoft C 数据库,版权所有 (C) 1987,作者:Peter Norton”。彼得从哪里得到的,我不知道。