2016-06-23 2 views
3

я на Ubuntu с C++Как скрыть свой ввод на моем терминале?

Image

Как скрыть красную коробку (пользовательский ввод), как показано на рисунке выше на моем терминале?

char *MESSAGE=getpass(""); 

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

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

EDIT: Может кто-нибудь прокомментировать меня, как этот вопрос дублируется этой теме ?.

ответ

0

Вы можете очистить терминал после отправки сообщения и перепечатать весь чат после этого.

+1

Я знаю, что есть способ очистить терминал, но разве это не очистит весь экран, оставив только последнее сообщение? – Lozy

+0

Очистка терминала означает, что все, что было написано на нем, исчезнет. Поскольку вы хотите, чтобы чат был видимым, вы можете распечатать весь чат после каждого ввода. Это предполагает, что вы где-то храните контент чатов. – Shiro

0

Если вы можете напечатать имя сначала, а затем прочитать вводное сообщение, я думаю, что ваша проблема может быть решена. Вы пробовали это?

0

Вы не можете сделать это надежным и портативным способом, используя только функции из стандартной библиотеки C, даже с Posix one.

Если вы используете консоль Windows, функции консоли Windows могут позволить вам удалить определенные части экрана, если вы знаете, что используете эмулятор терминала, соответствующий одному стандарту (VT100, xterm,. ..) вы можете вывести специальную последовательность управления, чтобы сделать то же самое.

Единственный переносной способ - использовать библиотеку управления экраном, такую ​​как проклятия, которые будут выполнять работу низкого уровня для вас.

Смежные вопросы