我正在使用ncurses,我正在使用getstr()
获取输入字符串。我希望通过Tab键击来实现类似自动完成的功能。但是,我没有看到用getstr()
捕捉Tab的方法。我试过这个:
char input = 0;
while (input != '\n')
switch (input = getch())
{
case '\t':
printw("Got Tab\n");
break;
default:
addch(input);
break;
}
但是在这种情况下,我必须为Backspace,Delete等编写自己的处理程序,这是不可取的,而且必须重新发明轮子。
答案 0 :(得分:1)
也许试试:
switch (input = getch())
{
case KEY_STAB:
printw("Got Tab\n");
break;
default:
addch(input);
break;
}
答案 1 :(得分:0)
这个对我来说很好用:
#include <cstdio>
#include <conio.h>
int main() {
char input = 0;
while (input != '\n') {
input = getch();
switch (input)
{
case '\t':
printf("T");
break;
case '\b':
printf("\b \b");
break;
default:
printf("%c", input);
break;
}
}
}
使用最新的g++