0

我正在玩非规范终端仿真并尝试将单个字符(我的输入)与退格键进行比较

if(c == '\x08')
{
 dosomething();
}

在裸机操作系统上工作,但是当我在 virtualbox 中运行它时,它根本不起作用。如果我这样做,Virtualbox 只会检测退格键

if(c == '\x7f')
{
 dosomething();
}

这可能是因为仿真虚拟机正在干扰实际的键盘输入吗?

4

1 回答 1

1

您刚刚遇到了经典DELBKSP困境。没有完美的解决方案,您必须承认某些终端配置为BKSP在用户按下退格键时输出 (0x08) ASCII 字符,而其他终端则输出DEL(0x7f)。

大多数终端仿真器都有这样的选项,我还没有看到很多应用程序软件实际上可以解决这个问题。它通常留给终端程序,用户决定是否按 DEL 或 BKSP 或重新配置他们的终端以确保正确的程序运行。

于 2013-09-12T04:08:04.850 回答