我正在尝试模拟用户,按下 、 等特殊<Left Arrow>
键。我听说 curses/terminfo 可能有助于以与终端无关的方式做到这一点,但是当我尝试(使用以下代码)打印第一个字符串“text”然后发出一个序列时,我没有得到一个(with as cursor),而是。为什么?如何正确地做到这一点?<Backspace>
<Delete>
key_left
'|'
"tex|t"
"textD|"
#include <term.h>
#include <stdio.h>
static void putf(const char *name) {
putp(name);
fflush(stdout);
}
int main(int argc, char **argv) {
setupterm((char*)0, 1, (int*)0);
printf("text");
fflush(stdout);
putf(key_left);
// hang up until user input
fgetc(stdin);
return 0;
}
请注意,虽然我可以使用 curses,但 ncurses 在我的用例中是不可接受的。另外,请注意,我不想使用类似的东西initscr()
,将当前终端屏幕替换为空白屏幕,这不是所需的行为。