Существует несколько библиотек, таких как ncurses, которые помогают создавать графические интерфейсы командной строки.
Проще говоря, как они работают?
Моя первая мысль заключалась в том, что ncurses перехватывает весь ввод на клавиатуре и рисует каждый "кадр", вызывая его по очереди. Однако более тщательный осмотр показывает, что каждый новый кадр перезаписывает предыдущий. Как это изменить строки, которые уже были выведены? Кроме того, как он обрабатывает цвет?
EDIT: тот же вопрос относится ко всему, что имеет "фантастический" интерфейс, например vim
и emacs
.