Я пытаюсь создать простой пользовательский интерфейс ASCII для простой программы интернет-чата. Я планирую, чтобы это выглядело так:
(имя): сообщение
(имя): сообщение
---------------------------------------------
(вы): сообщение | (курсор)
Я собирался использовать управляющие символы ASCII (ANSI?) Для достижения этой цели.
Всякий раз, когда клиент чата получает сообщение от сервера, он должен обновиться, чтобы сообщение появилось в виде первого сообщения над штрих-линией, а затем вернул курсор в предыдущую позицию, чтобы пользователь мог продолжить ввод с того места, где он остановился. .
Мой первоначальный план был:
1. сохранить текущую позицию курсора (\ e7)
2. переместите курсор вверх на 1 строку (к штриховой линии) и в начало этой строки (\ e [1F])
3. переместите штриховую линию вниз (\ n)
4. снова переместите курсор на одну строку вверх (на пустую строку) (\ e [1A)
5. распечатать сообщение с сервера
6. восстановить предыдущую позицию курсора (\ e8)
все вместе: "\ e7 \ e [1F \ n \ e [1A" << message << "\ e8"; </p>
В чем проблема, так это то, что символ новой строки, кажется, только перемещает курсор на следующую строку, а не вставляет пустую строку. Как я могу выполнить это поведение?
Это для домашнего задания, но это просто дополнительный талант, который я хотел бы добавить для себя. Фактическое назначение уже выполнено.
примечание: алгоритм обработки ввода пользователя на собственном экране уже обработан правильно.