如何在C中检查"退格"字符

joe*_*oel 21 c character backspace

我想知道如何检查用户是否键入"退格"字符.

我正在使用getch() function i.e. "key = getch()"我的C程序,我想检查何时按下退格键.这条线:

 if(key = '\b') { ....
Run Code Online (Sandbox Code Playgroud)

不起作用.

Sie*_*geX 27

阅读的问题Backspace在于,大多数终端都是"熟"的,因为退格键等终端驱动程序会处理这些键.但是,curses函数getch()可以读取退格,因为它没有绑定到终端.

编辑

我只注意到你的代码使用getch()的输入.我运行了一个小测试程序,getch()当你按下退格键时返回127.因此尝试:

if (key == 127 || key == 8) { ... /* Checks for both Delete or Backspace */
Run Code Online (Sandbox Code Playgroud)

另请注意,示例代码在使用等于运算符时使用赋值运算符===

  • +1.另见:http://stackoverflow.com/questions/3167733/ignore-backspace-key-from-stdin (3认同)
  • 令人困惑的是,"退格"的实际ASCII码是8(\ b,^ H); 127(^?)是"删除".键盘上标有"退格"(或"删除")的键是否发送"8"或"127"取决于终端应用程序中的设置.您可能想要检查两者. (3认同)