我是C / C ++的新手,我正在使用NCurses
制作简单的文字用户界面。
每当我使用鼠标滚轮向上/向下滚动,或按箭头键时,控制台会回显如下字符:
"[[A^[[C^[[B^[[D"
告诉我,我已按下按键。
我想阻止这些回声,只回显基本键(标点符号和字母)。
这是我的主循环。我基本上希望它是我自己的控制台,其中包含我创建的命令。
string input;
char inputArr[80];
while (input != "q" && input != "quit" && input != "exit" && input != "leave") {
printw(" > ");
refresh();
getstr(inputArr);
input = inputArr;
if (input.substr(0, 3) != "someCommand") {
printw("\n ~ %s\n\n", inputArr);
refresh();
} else
execCmd();
}
quit();
在大多数情况下,我认为它是C ++,但我确实有一个C函数(使用libCurl)。
此外,还没有更简洁的方法来阅读NCurses的字符串?我真的不喜欢使用char数组(我习惯使用Java)。
答案 0 :(得分:2)
在noecho()
附近的某个地方拨打initscr()
。
这样可以避免使用不需要的输入来破坏屏幕。如果您希望用户稍后查看他们输入的内容,则需要先调用echo()
。