Сохранение и восстановление позиции курсора в терминале.

Модератор: Модераторы разделов

K_AA
Сообщения: 5
ОС: Ubuntu 12.10

Сохранение и восстановление позиции курсора в терминале.

Сообщение K_AA »

В общем есть курсовая работа, где требуется написать программу, работующую на небольшом устройстве с экраном 2*40 символов.
В программе происходит одновременный ввод и вывод информации. В нижней строке вводится слово. В этот же момент в верхней строке каждую секунду выводится оставшееся время (используется alarm). То есть в процессе ввода слова срабатывает alarm, позиция сохраняется, переходит на врехнюю строку, выводит время, а потом восстанавливается в исходную, где был прерван ввод (с клавиатуры).
Сначала использовал команды для терминала:
  • cout << "\x1b[s"; для сохранения позиции
  • cout << "\x1b[u"; для восстановления

На компьютере всё отлично работает.
Но на устройстве такие команды не поддерживаются, тк их список сильно урезан (есть только очистка экрана и установка позиции курсора).

Как ещё возможно без особых трудностей реализовать сохранение и восстановление курсора, или одновременный вводи и вывод информации в терминал?
Спасибо сказали:
Аватара пользователя
/dev/random
Администратор
Сообщения: 5471
ОС: Gentoo

Re: Сохранение и восстановление позиции курсора в терминале.

Сообщение /dev/random »

Двигайте курсор только сами и запоминайте, куда подвинули.
Спасибо сказали:
K_AA
Сообщения: 5
ОС: Ubuntu 12.10

Re: Сохранение и восстановление позиции курсора в терминале.

Сообщение K_AA »

/dev/random писал(а):
18.04.2013 16:03
Двигайте курсор только сами и запоминайте, куда подвинули.

Вот я и не могу понять, как и с помощью каких средств следить за позицией курсора при вводе слова, и при этом не пользоваться ESC последовательностями для терминала?
Спасибо сказали:
Аватара пользователя
/dev/random
Администратор
Сообщения: 5471
ОС: Gentoo

Re: Сохранение и восстановление позиции курсора в терминале.

Сообщение /dev/random »

K_AA писал(а):
19.04.2013 10:12
Вот я и не могу понять, как и с помощью каких средств следить за позицией курсора при вводе слова, и при этом не пользоваться ESC последовательностями для терминала?

Не следите, двигайте. Отключите эхо и буферизацию и выводите вводимые пользователем символы сами. Или ваш терминал даже этого не умеет?
Спасибо сказали: