7
#include <conio.h>

int main (void)
{
    for (;;)
    {
        unsigned char ch = getch();
        printf ("0x%02X\n", ch);
    }
}

我想得到扫描码。

这是来自维基百科的描述:

    Reads a character directly from the console without buffer, and without echo.

当我按下Del时,它显示 0xE0 0x53。

当我按下Ctrl+PgUp时,它显示 0xE0 0x86。

虽然有些与表格相同,但它显示的大多数值与它不同。

那么,getch()真的得到扫描码了吗?

下面是扫码表(设置2,最常用)

扫码

4

1 回答 1

0

我在 VS 2012 (C++) 中运行了一个控制台应用程序,并得到了与您相同的结果。它确实说 getch() 已被弃用,我应该使用 _getch(),但这并没有什么区别。

然后我在这里找到了一个与之匹配的表(最右边的列)。对我来说,“白色”键使用 shift 和数字键盘等效项,“灰色”键是独立的向上翻页、向下翻页等。我发现在数字键盘上输入的一个差异是与常规回车键相同。

http://www.itlnet.net/programming/program/Reference/msc/ng7d68f.html

我不知道这个表是从哪里来的,除非你点击“About The Guide”,它说“The Microsoft C Database, Copyright (C) 1987, by Peter Norton”。彼得从哪儿弄来的,我不知道。

于 2014-01-10T16:35:32.837 回答