Страницы

Поиск по вопросам

воскресенье, 31 марта 2019 г.

Как изменять выведенный текст в консоли посредством cout?

Есть простая программа производящая долгие вычисления. Хотелось бы на каждой итерации цикла выводить ее номер (ну или текщий процент выполнения) в консоль, при этом желательно изменяя только последнюю строку. Например вывод
Start Function result 45123 Testing ... Comleted 45%
Так вот по ходу надо бы изменять только строку Comleted 45% а остальное не трогать. Вывод осуществляю через cout. Как такое сделать?


Ответ

Вот пример кода. sleep исключительно для того, что бы создать задержку.
#include #include // для sleep int main() { for (int i = 0; i < 100; i+=10) { std::cout << "
Completed " << i << "% " << std::flush; sleep(1); }
std::cout << "
Done " << std::endl; return 0; }
std::flush нужен, так как стандартные потоки любят буферизировать ввод-вывод (закомментируйте и посмотрите на результат).
переводит вывод в начало строки, не переходя на новую строку. Пара пробелов после процента нужна, так как строка не очищается и нужно затирать пробелами "хвост".

Комментариев нет:

Отправить комментарий