Библиотека универсального текстового интерфейса C в реальном времени

#c #text #command-line-interface

#c #текст #интерфейс командной строки

Вопрос:

Глупый вопрос здесь, я ищу общий текстовый API для программ командной строки. Что-то вроде, ncurses я думаю, подошло бы по всем статьям. В идеальном мире я хотел бы что-то переносимое между Windows и Linux, но пока это будет работать только в Linux.

Поскольку это, вероятно, ужасно расплывчато, вот что у меня есть на данный момент и куда я хочу перейти.

Что у меня есть на данный момент:

  • Код, который создает область отображения в реальном времени в терминале Linux. Область отображения составляет примерно 50 строк на 100 столбцов или около того и поддерживается буфером массива символов того же размера. Я cout просматриваю текст 20 раз в секунду, каждый раз предваряя его кодом bash для перемещения курсора «вверх» на 50 строк (то есть, cout << "33[50A"; ).
  • Это отлично работает для создания отображения обновлений в реальном времени с минимальным мерцанием, но у меня нет способа отправить входные данные в программу, о котором я могу подумать (то есть через терминал).

Куда я хочу пойти:

  • Используйте какую-нибудь более мощную библиотеку, которая могла бы управлять буфером для меня и печатать экран, надеюсь, избавляясь от суперспециального кода bash 33[50A .
  • Добавьте ввод командной строки в нижней части экрана, где пользователь может, пока экран обновляется, вводить определенные команды, чтобы заставить программу выполнить определенные действия.

Я видел, как это делают другие программы, как они это делают?

Ответ №1:

Я думаю, что библиотека «readline» делает многое из того, что вы хотите.