Какой самый простой способ отобразить меняющиеся числа в консоли? У меня есть обычная программа командной строки в C++, которая использует cout
, но я хотел бы отобразить процентное число, представляющее прогресс, который насчитывает до 100, без печати новой строки. Как это сделать? (Если это имеет значение: я на Windows 7)
C + + изменение вывода на консоли
Ответ 1
Когда мне нужно, чтобы я только что вывел символ возврат каретки, в С++ \r
.
Помните сбросить вывод каждый раз, например
cout << "\r" << x << "% completed. " << flush;
пробелы в конце, чтобы очистить предыдущий вывод на линии в случае непредсказуемого прогресса, подобного Microsoft.
Ответ 2
Используйте символ обратного пробела.
cout << "10%";
// ...
cout << "\b\b\b20%";
Ответ 3
Я обычно помещаю возврат каретки после информации о ходе. Таким образом, любой другой выход будет казаться нормальным (если у него достаточно символов в строке, чтобы полностью перезаписать информацию о ходе).
cerr<<percentage<<"% \r";
Кстати, я предпочитаю использовать cerr вместо cout для такого типа информации о статусе/диагностике, чтобы cout можно было зарезервировать для реального контента. Таким образом, вы можете перенаправить нормальный вывод программы в файл и все еще видеть прогресс в консоли. Кроме того, с помощью cerr вам не нужно использовать "флеш".