C++ 如何在C++;用NCurses

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" &&

我是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函数(使用LIcURL)。 另外,是否没有更干净的方法来使用NCurses读取字符串?我真的不喜欢使用字符数组(我习惯于Java)。

调用
noecho()
initscr()附近的某个地方


这将避免不必要的输入冲击屏幕。如果您想让用户稍后看到他们键入的内容,则需要在之前调用
echo()

请显示您的代码。同时,也要学会你正在使用的语言。C语言和C++语言是不同的语言,我想在循环中回传字母和标点符号。我不想回显箭头/鼠标滚轮之类的键。如果我执行noecho(),则所有输入都将被阻止。我只想阻止这个特定的输入(或者将某些键列为白色)。这就是它的工作原理:使用
noecho()
禁用“自动”输出,然后自己打印想要打印的所有内容(例如使用
printw()
)。但是,当用户键入时,我必须用getch()读入每个字符,看看是否应该打印。