2015-05-09 3 views
-4

Я новичок в этом форуме, и английский не мой первый языкПоказать сообщ вместо ввода пользователя

вот мой вопрос

я хочу создать программу, которая получит целое входные данные от пользователя, после чего удалите это значение из экран и показать сообщ вместо значения

, например

cin>>n;         // 10 
cout<<"hello world"; 

когда я запустить эту программу, показать выход, как этот

10 
hello world 

я хочу, 10 должны быть удалены и экран шоу просто

hello world 

, пожалуйста, помогите мне спасибо

+0

Вы хотите, чтобы вы отключили функцию эхо-терминалов терминалов или сразу же очистили последнюю последнюю строку после ввода? –

ответ

1
10 
hello world 

«я хочу это 10 быть удалены и экран шоу просто "

hello world 

К сожалению, это невозможно решить, используя стандартные средства ввода-вывода C++, поскольку это в значительной степени зависит от вашего фактически используемого терминала и его вариантов реализации контрольного символа.

Поведение терминалов по умолчанию: echo символы, введенные пользователем. В некоторых реализациях терминала вы можете управлять, чтобы скрыть введенные символы (выключить echo). Кроме того, у вас могут быть варианты удаления типизированных символов с использованием обратного пространства или так далее.

Если текущий терминал поддерживает это, в основном существуют 2 варианта:

  1. Вы выключите вход эхо механизм перед вызовом cin>>n;
  2. Вы сразу же очистить последний вход сделанный cin>>n;, например, вывод '\b' символа обратного пробега
+0

Извините, я не понимаю –

+0

@WajidMax Что именно вы не поняли из моего ответа? –

+0

Если вы используете Linux/UNIX, вы можете использовать [escape-коды ANSI] (http://www.tldp.org/HOWTO/Bash-Prompt-HOWTO/c327.html) и сделать 'std :: cout <<" \ 033c "<< std :: flush;', чтобы очистить экран. Но, как упоминалось в @ πάνταῥε,, это не переносное решение (т. Е., Скорее всего, не будет работать на Windows/других платформах). – vsoftco

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