Си: показатель загрузки
Как в emerge
сделан вращающийся слеш? (/
) Он пишет:
Calculating dependencies /
И слеш вращается. Как это сделано? Хочу повторить.
Источник: Stack Overflow на русском
Как в emerge
сделан вращающийся слеш? (/
) Он пишет:
Calculating dependencies /
И слеш вращается. Как это сделано? Хочу повторить.
Я практически уверен, что они (emerge) делают это так (а не \r и вывод всей строки, что вызывало бы некую рябь на экране)
Можете попробовать и поиграться задержкой (usleep)
#include <stdio.h>
int
main (int ac, char *av[])
{
int i, j;
char *s = "/-\\|";
fputs("test ", stdout); fflush(stdout);
for (i = 0; i < 100; i++)
for (j = 0; j < 4; j++) {
printf("\b%c", s[j]); fflush(stdout); // символ \b -- BACKSPACE -- шаг назад
usleep(100000);
}
}
Если нужно перепечатывать только один символ - достаточно \b печатать - смещает курсор на 1 позицию назад.
Наверное каждый раз перепечатывается одна и та же строка, только меняется один символ: -,\,|,/ –
можно при выводе в консоль управлять кареткой с помощью символа '\r'
printf("hello");
printf("\rbye");