The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Печать на одной и той же строке (прогресс)"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"Печать на одной и той же строке (прогресс)" 
Сообщение от victorddt emailИскать по авторуВ закладки(??) on 09-Фев-05, 11:24  (MSK)
Идет какая-то обработка, надо писать прогресс выполнения в %:
1%
2%
3%
и т.д.

Как выводить все это на одной и той же строке.

Смотрел функции:
fprintf   -  пишет литеры в поток fp.
printf    -  пишет литеры в поток stdout.
sprintf   -  пишет литеры в память buffer.


Но не нашел. Может какой флаг использовать. Или вообще функция другая?
Спасибо.

  Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "Печать на одной и той же строке (прогресс)" 
Сообщение от hatta Искать по авторуВ закладки(??) on 09-Фев-05, 20:05  (MSK)
>Идет какая-то обработка, надо писать прогресс выполнения в %:
>1%
>2%
>3%
>и т.д.
>
>Как выводить все это на одной и той же строке.

символ \r -- возврат каретки в начало строки.
printf("\r%d%%", procent) сделает то что нужно

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "Печать на одной и той же строке (прогресс)" 
Сообщение от Xenu emailИскать по авторуВ закладки on 09-Фев-05, 22:29  (MSK)
тут надо write и snprintf использовать, примерно вот так

char buf[10] = "";
snprintf(buf, 9, "\r% 3d%%", количество процентов);
write(1, buf, strlen(buf));

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "Печать на одной и той же строке (прогресс)" 
Сообщение от victorddt emailИскать по авторуВ закладки(ok) on 10-Фев-05, 08:41  (MSK)

Спасибо, Всем попробую.
  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "Печать на одной и той же строке (прогресс)" 
Сообщение от Alexander S. Salieff emailИскать по авторуВ закладки on 14-Фев-05, 17:27  (MSK)
>тут надо write и snprintf использовать, примерно вот так
>
>char buf[10] = "";
>snprintf(buf, 9, "\r% 3d%%", количество процентов);
>write(1, buf, strlen(buf));

Одно из отличий write от *printf - отсутствие буфферизации, так что можно и без него:

printf("\r% 3d%%", количество процентов);
fflush(stdout);

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "Печать на одной и той же строке (прогресс)" 
Сообщение от rgo Искать по авторуВ закладки on 21-Фев-05, 04:29  (MSK)
Можно ещё посмотреть
man termcap
man terminfo
man tcgetattr
о том как узнавать другие esc-последовательности
  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх


Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру