Способы заставить одну строку в окне консоли исчезнуть через пару секунд?

Мне нужно в основном мигать набор чисел в течение примерно 2 секунд. Затем пользователю нужно будет запомнить числа и ввести их. Как я могу это сделать? Я пытался использовать таймер или изменить цвет текста на тот же цвет фона, но я не могу придумать лучшего способа сделать это. Какие-либо предложения?


person zhodges10    schedule 08.12.2017    source источник


Ответы (1)


У вас есть в основном три способа справиться с этим, потому что типичные терминалы не имеют концепции «экрана», только линии.

  1. Используйте символы возврата каретки или возврата, чтобы перезаписать предыдущие символы пробелами (но обратите внимание, что в этом случае пользователь может нажать Enter, чтобы «сохранить» данные).
  2. После этого распечатайте кучу пустых строк, но пользователь может прокрутить назад.
  3. Используйте какую-нибудь библиотеку curses (вероятно, ncurses).

Вам нужно будет просмотреть варианты и определить, какой из них лучше всего подходит именно для того, чего вы пытаетесь достичь.

person Jack Zhou    schedule 08.12.2017
comment
Не могли бы вы объяснить, как использовать \r? Я смотрю на это и пытаюсь напечатать это: 'cout ‹‹ Hello\rDone ‹‹ endl;' но он отображает «донео»? - person zhodges10; 08.12.2017
comment
\r возвращает курсор в начало строки, поэтому он перезаписывает первые четыре символа Hello словом done, поэтому вы получаете doneo. Вам нужно будет напечатать пустые места, чтобы скрыть остальную часть строки. - person Jack Zhou; 08.12.2017
comment
Я вижу, круто! Я собираюсь подробнее изучить это, спасибо! - person zhodges10; 08.12.2017