Как я могу заблокировать определенные ключи в C ++ с помощью NCurses

Я новичок в 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? Мне не очень нравится использовать массивы символов (я привык к Java).

0

Решение

Вызов noecho() где-то близко к initscr(),

Это позволит избежать засорения вашего экрана нежелательным вводом. Если вы хотите, чтобы ваши пользователи видели, что они печатают позже, вам нужно будет позвонить echo() раньше, однако.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]