Идет какая-то обработка, надо писать прогресс выполнения в %:
1%
2%
3%
и т.д.Как выводить все это на одной и той же строке.
Смотрел функции:
fprintf - пишет литеры в поток fp.
printf - пишет литеры в поток stdout.
sprintf - пишет литеры в память buffer.
Но не нашел. Может какой флаг использовать. Или вообще функция другая?
Спасибо.
>Идет какая-то обработка, надо писать прогресс выполнения в %:
>1%
>2%
>3%
>и т.д.
>
>Как выводить все это на одной и той же строке.символ \r -- возврат каретки в начало строки.
printf("\r%d%%", procent) сделает то что нужно
тут надо write и snprintf использовать, примерно вот такchar buf[10] = "";
snprintf(buf, 9, "\r% 3d%%", количество процентов);
write(1, buf, strlen(buf));
Спасибо, Всем попробую.
>тут надо write и snprintf использовать, примерно вот так
>
>char buf[10] = "";
>snprintf(buf, 9, "\r% 3d%%", количество процентов);
>write(1, buf, strlen(buf));Одно из отличий write от *printf - отсутствие буфферизации, так что можно и без него:
printf("\r% 3d%%", количество процентов);
fflush(stdout);
Можно ещё посмотреть
man termcap
man terminfo
man tcgetattr
о том как узнавать другие esc-последовательности