Есть простая программа производящая долгие вычисления. Хотелось бы на каждой итерации цикла выводить ее номер (ну или текщий процент выполнения) в консоль, при этом желательно изменяя только последнюю строку. Например вывод
Start
Function result 45123
Testing ...
Comleted 45%
Так вот по ходу надо бы изменять только строку Comleted 45% а остальное не трогать. Вывод осуществляю через cout. Как такое сделать?
Ответ
Вот пример кода. sleep исключительно для того, что бы создать задержку.
#include
Completed " << i << "% " << std::flush;
sleep(1);
}
std::cout << "
Done " << std::endl;
return 0;
}
std::flush нужен, так как стандартные потоки любят буферизировать ввод-вывод (закомментируйте и посмотрите на результат).
переводит вывод в начало строки, не переходя на новую строку. Пара пробелов после процента нужна, так как строка не очищается и нужно затирать пробелами "хвост".
Комментариев нет:
Отправить комментарий