Я пытаюсь напечатать подменю, связанное с главным меню, показанным с помощью ncurses.Вот как я это организовал:
- do {} while ();цикл с wgetch получает ввод с клавиатуры от пользователя
- , если пользователь нажимает клавишу ввода, после очистки всего экрана отображается запись в подменю.
К сожалению, я не могу пройти мимо2-й шаг, подменю никогда не отображается на экране.
#include <ncurses.h>
#include <iostream>
#include <string>
int main()
{
std::string nameMainMenuExample = "/parent1/folder";
std::string nameSubMenuExample = "/folder/file";
// initialize ncurses
WINDOW *win;
win = initscr();
raw();
curs_set(0);
cbreak();
box(win, 0, 0);
refresh();
wrefresh(win);
keypad(win, true);
// end initialize ncurses
int highlight = 0;
int choice;
// PRESS 'a' to ESCAPE LOOP
do {
mvwprintw(win, 1, 1, nameMainMenuExample.c_str());
switch (choice) {
case KEY_UP:
--highlight;
if (highlight == -1) {
highlight = 0;
}
break;
case KEY_DOWN:
++highlight;
if (highlight == 1) {
highlight = 0;
}
break;
case KEY_ENTER: // Enter key pressed
clear();
mvwprintw(win, 1, 1, nameSubMenuExample.c_str());
refresh();
break;
default:
break;
}
} while ((choice = wgetch(win)) != 97); // random choice a == 97
endwin();
return 0;
}
Я просто ожидаю, что подменю будет напечатано на экране после того, как ncurses очистит экран главного меню.Спасибо