Существует несколько библиотек, таких как ncurses , которые помогают создавать графические интерфейсы командной строки.
Проще говоря, как они работают?
Моей первой мыслью было, что ncurses перехватывает весь ввод с клавиатуры и рисует каждый «кадр», выводя его построчно. Однако при более тщательном рассмотрении выясняется, что каждый новый кадр перезаписывает предыдущий. Как он изменяет строки, которые уже были выведены? Кроме того, как он обрабатывает цвет?
РЕДАКТИРОВАТЬ: тот же вопрос относится ко всему с "причудливым" интерфейсом, как vim
и emacs
.