读取c中的删除键击

时间:2017-11-06 01:07:18

标签: c bash darwin

我遇到了一些我不清楚的事情。我无法从MacBook Air读取删除输入。我在c中编写一个程序来读取输入,并使用了以下转义序列字符:

c =' 127'

我可以将变量c设置为小数值8,从我的理解是退格转义序列。此外,在终端>首选项>高级,我选中启用删除发送Control-H的框。

一旦我做了上面提到的事情,我就可以读取输入设置c变量,如下所示:

c =' 8'

以下是我尝试从MacBook中读取删除密钥的代码 空气:

#include <stdio.h>

main() {
    /*  Copy program input to program output,
        replacing each tab by \t,
        each backspace by \b,
        and each backslas by \\.
        This makes tabs and backspaces visible in an unambiguous way.
    */

    int c;  // a variable for a character

    while((c = getchar()) != EOF) {
        if (c == '\t')
            printf("\\t");
        // check box found in:
        // Terminal>Preferences>Advanced>Delete sends Control-H
        // default setting DOES NOT send Control-H
        // The Delete key does not appear to work with the ascii decimal character value 127.
        if (c == '\127')
            printf("Print to the screen if Delete key is detected.");
        if (c == '\\')
            printf("\\\\");
        if (c != '\t')
            if (c != '\b')
                if (c != '\\')
                    putchar(c);             
    }
}

2 个答案:

答案 0 :(得分:0)

你无法阅读它的原因是它实际上并不存在。使用删除代码删除字符效率很低,因此大多数程序实际上删除了字符而不是添加删除字符以隐藏前一个字符。

答案 1 :(得分:0)

尝试以下代码,看看会发生什么:

npm run build:ssr && npm run serve:ssr

希望这有帮助。