История команд на основе стрелок вверх в консоли ввода (C ++) - PullRequest
1 голос
/ 15 июня 2011

Я пытаюсь создать консольное приложение, которое принимает пользовательский ввод. Я мог использовать printf, чтобы держать курсор в том же месте, я мог бы также использовать проклятия, но я не могу заставить работать историю команд со стрелками вверх. Есть указатели?

Ответы [ 5 ]

5 голосов
/ 15 июня 2011

Я думаю, что вы хотите readline (www.gnu.org/software/readline/, который, кажется, теперь перенаправляет на сайт сопровождающего по адресу http://cnswww.cns.cwru.edu/php/chet/readline/rltop.html)

3 голосов
/ 15 июня 2011

В дополнение к упоминаниям о библиотеке readline, я также упомяну лицензированную BSD библиотеку editline и инструмент оболочки командной строки rlwrap, который запускает любую программу с историей на основе readline.

1 голос
/ 15 июня 2011

Пока лицензия GNU не является для вас проблемой, я настоятельно рекомендую GNU Readline

0 голосов
/ 15 июня 2011

В Windows стандартные консольные окна предоставляют историю ввода со стрелкой вверх - вам не нужно ничего делать.Для других стандартных консольных служб Windows см. Справку по команде doskey и просто замените слово «команда» на «строка ввода».Да, это немного вводит в заблуждение.

РЕДАКТИРОВАТЬ , добавлен пункт: Возможно, вы делаете что-то, что обходит стандартные услуги.Я только что заметил, что заголовок окна браузера говорит «ncurses», чего нет в вашем текущем заголовке вопроса.Возможно, это так, но в этом случае, обратитесь за помощью к ncurses.

Для * nix см. Другие ответы.

0 голосов
/ 15 июня 2011

Посмотрите библиотеку GNU Readline . Может обеспечить поддержку истории ввода.

...