2015-06-08 3 views
0

Редактировать: Благодаря комментарию пользователя mah, я нашел то, что искал. Я хочу, чтобы откат линии, см. this question.C++: повторное использование строки, напечатанной на консоли


Я всегда печатать информацию на консоль с помощью std::cout и std::endl, но при печати ход цикла это быстро становится очень многолюдно:

98,3968% полной

98,5972% полной

98.7976%

98,998% полной

99,1984% полной

99,3988% полной

99,5992% полной

99,7996% полной

Программа wget Linux, например, делает это намного лучше путь, даже строя индикатор выполнения, состоящий из равных (=) знаков: Example output of wget

Как это или что-то подобное можно сделать на C++? Есть ли хорошие библиотеки? Я думаю, что некоторые терминальные библиотеки GUI могли бы это сделать, но мне не нужен «пользователь» в разделе «Пользовательский интерфейс», я хочу только лучше печатать информацию.

+2

Не используйте std :: endl (или '\ n'). Вместо этого используйте '\ r'. – mah

+0

(вы * do * нуждаетесь в пользовательской части. В конце концов, выход для пользователя ...) – deviantfan

+0

@mah Спасибо, я не знал о '\ n', это выглядит намного лучше уже. – Cat

ответ

1

Вы можете напечатать «=» без разрыва строки, или вы можете использовать ncurses, который, как я думаю, также использует wget.

Но по-моему, ncurses - это много работы. Для небольших проектов я рекомендую более простой способ.

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