Ответ 1
Уловкой, используемой для этого, является возврат к первой позиции в текущей строке вместо перехода к следующей строке.
Это делается путем записи символа \r
(возврат каретки) в терминал/stdout.
Возможный дубликат:
Как обновить печатное сообщение в терминале без перепечатки (Linux)
У меня есть код С++, выполняющий некоторые симуляции.
Я хочу показать процент моего моделирования, но я не хочу выводить новую строку на каждый шаг, например
% 1
% 2
% 3
...
Есть ли способ в С++ или в сценариях оболочки показывать прогресс без создания новых строк?
Спасибо
Кто-нибудь знает, как обновить номер на моей личной веб-странице, не обновляя всю страницу?
Спасибо
double N=0;
forAll (internalIDs_, i) {
N++;
double percent = 100*N/internalIDs_.size();
// Info<< "\rProgress: " << percent << "%" << endl;
printf("\r[%6.4f%%]",percent);}
Терминальный курсор продолжает циклически мигать по номерам, очень раздражает, как избавиться от этого?
Уловкой, используемой для этого, является возврат к первой позиции в текущей строке вместо перехода к следующей строке.
Это делается путем записи символа \r
(возврат каретки) в терминал/stdout.
cout << "\r%1";
cout << "\r%2";
cout << "\r%3";
...
\ r - перемещение в начале строки;
но! если:
cout << "\rsomelongmessage";
cout << "\rshort";
то вы получите:
shortongmessage
из-за:
somelongmessage
^^^^^
short
но вы можете:
cout << "\rsomelongmessage";
cout << "\rshort ";
то вы получите наконец:
short