C++ 如何在C++;用NCurses
我是C/C++新手,我正在用C++ 如何在C++;用NCurses,c++,c,input,ncurses,curses,C++,C,Input,Ncurses,Curses,我是C/C++新手,我正在用NCurses制作一个简单的文本用户界面 每当我用鼠标滚轮向上/向下滚动或按箭头键时,控制台都会回显如下字符: "[[A^[[C^[[B^[[D" 让我知道我已经按过键了 我想停止这些回音,只回音基本键(标点符号和字母) 这是我的主循环。我基本上希望它是我自己的控制台,带有我创建的命令 string input; char inputArr[80]; while (input != "q" && input != "quit" &&
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函数(使用LIcURL)。 另外,是否没有更干净的方法来使用NCurses读取字符串?我真的不喜欢使用字符数组(我习惯于Java)。
调用noecho()
在initscr()附近的某个地方
这将避免不必要的输入冲击屏幕。如果您想让用户稍后看到他们键入的内容,则需要在之前调用echo()
。请显示您的代码。同时,也要学会你正在使用的语言。C语言和C++语言是不同的语言,我想在循环中回传字母和标点符号。我不想回显箭头/鼠标滚轮之类的键。如果我执行noecho(),则所有输入都将被阻止。我只想阻止这个特定的输入(或者将某些键列为白色)。这就是它的工作原理:使用noecho()
禁用“自动”输出,然后自己打印想要打印的所有内容(例如使用printw()
)。但是,当用户键入时,我必须用getch()读入每个字符,看看是否应该打印。