gpt4 book ai didi

c - 如何使用 C 阻止退格键出现在 nCurses 中?

转载 作者:太空宇宙 更新时间:2023-11-04 12:29:33 27 4
gpt4 key购买 nike

我目前正在编写一个 ncurses shell,为了读取输入,逐字符读取输入很重要,因此我使用了 mvwgetch 命令。并在逐个字符读取时递增计数器。问题是每当我按下箭头键或退格键时,它们的输出就会被打印出来。因此,如果我按下退格键,^? 就会被打印出来。

while ((command[i] = mvwgetch(promptwin, promptline, posx)) != '\n') {
if (command[i] == 7) { // if entered character is a backspace
i =-2;
posx =- 2;
mvwdelch(promptwin, promptline, posx);
mvwdelch(promptwin, promptline, posx - 1);
command[i] = '\0';
} else {
posx++;
posyx[1] = posx;
wmove(promptwin, promptline, posx);
}
i++;
}

需要阅读字符才能跟踪光标在屏幕上的位置。在我的代码中,我尝试解决这个问题,但它仍然显示这些字符。 PS:在 Linux 上工作。

最佳答案

首先,7 不是退格键——7 是铃声。你想要 8。你也可以检查 KEY_BACKSPACE。

你提到不使用 noecho(),但这正是你必须做的来抑制特殊字符的输出。然后您可以显式addch()想要出现的字符(可打印字符)。

关于c - 如何使用 C 阻止退格键出现在 nCurses 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43659660/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com