ncurses отключен показ курсора в Bash - PullRequest
1 голос
/ 18 декабря 2011

Я написал программу, в которой я использовал библиотеку ncurses, которую я использовал, клавиши меню окон и другие ее возможности.Я запускаю свою программу без ошибок.После выхода из программы я не вижу никаких входных данных (, конечно, то же самое, что вы запускаете команду passwd и хотите ввести новый пароль ), например, если вы запускаете ls, я могу видеть вывод ls (список текущей директории)), но я не вижу слова.Как мне решить эту проблему?часть моего кода:

    WINDOW *menu_win,*qmenu_win,*amenu_win,*smenu_win;
char *query;
char *fields;

WriteFile *writePtr = new WriteFile();
ReadFile *readPtr = new ReadFile();

int highlight = 1;
int choice = 0;
int c;

initscr();
clear();
noecho();
cbreak();   /* Line buffering disabled. pass on everything */
startx = (80 - WIDTH) / 2;
starty = (24 - HEIGHT) / 2;

menu_win = newwin(HEIGHT, WIDTH, starty, startx);
keypad(menu_win, TRUE);
mvprintw(0, 0, "Use arrow keys to go up and down, Press enter to select a choice");
refresh();
print_menu(menu_win, highlight);
while (true)

Ответы [ 2 ]

1 голос
/ 19 декабря 2011

Убедитесь, что ваша программа вызывает endwin () перед выходом.В противном случае состояние терминала не может быть восстановлено.

0 голосов
/ 18 декабря 2011

Когда это происходит, введите reset в ответ на запрос.

Также помните, что проблемы могут быть связаны с самой программой терминала. Если он неправильно эмулирует терминал, который, как он утверждает, эмулирует, вы столкнетесь с проблемами.

Или это может быть ошибка в вашей программе: возможно, вам нужно заменить noecho на echo ?

...