生成"可读"命令提示符中的退格

时间:2015-07-06 15:10:06

标签: c windows visual-studio visual-c++ getchar

如何生成"可读"在命令提示符下退格?

我有一个很小的C应用程序,我试图用getchar()方法从输入读取退格。

是否有任何组合触发此功能(并且仍能捕获它)? (类似于Ctrl-Z来触发EOF)

3 个答案:

答案 0 :(得分:1)

退格是特别的!通常,您需要使用一些原始/无缓冲键盘I / O模式来捕获它。

在Windows上,您可以尝试使用getch代替getchar。另见:What is the difference between getch() and getchar()?

答案 1 :(得分:1)

您可以使用curses函数getch()来读取退格 切换以下链接 - how to check for the "backspace" character in C

在上面的链接中,回答ascii的退格值用于读取它。

答案 2 :(得分:1)

退格键的Ascii代码是127,所以每个函数从终端输入返回一个整数,如果退格,可能会返回127。请注意,因为它与删除按钮的代码相同。

<强>的Linux

首先查看this回答并实现自己的 getch(),然后按照Windows代码示例(显然没有conio.h lib)。

<强>窗

只需在源文件的开头添加#include<conio.h>即可。

这是我的SSCCE,只需要写这样的东西

int main(void) {
    int c;
    while (1) {
        c = getch();
        if (c == 127) {
            printf("you hit backspace \n");
        } else {
            printf("you hit the other key\n");
        }
    }
    return 0;
}