Tag: terminfo

如何使用terminfo以终端无关的方式正确打印特殊键序列?

我试图模仿用户,按下 , , 等特殊键。 我听说curses / terminfo可能有助于以终端无关的方式做到这一点,但是当我尝试(使用以下代码)打印第一个字符串“text”然后发出key_left序列时,我没有得到(带有’|’作为光标) “tex|t” ,而是”textD|” 。 为什么? 怎么做得好? #include #include 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()这样的东西,用空白替换当前的终端屏幕,这不是一个理想的行为。