Я новичок в 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).
Вызов noecho()
где-то близко к initscr()
,
Это позволит избежать засорения вашего экрана нежелательным вводом. Если вы хотите, чтобы ваши пользователи видели, что они печатают позже, вам нужно будет позвонить echo()
раньше, однако.
Других решений пока нет …