анимированный символ ожидания в режиме CLI - PullRequest
1 голос
/ 13 мая 2011

Мне было интересно, если кто-нибудь знает способ обеспечить простую анимацию в терминале.Например, при обработке файла было бы неплохо иметь возможность показать:

'|', '/', '-', '\', '|' и т. Д.

в том же месте с небольшими временными интервалами, поэтому он будет выглядеть как вращающаяся полоса (указывает на то, что программа запущена).Единственный способ сделать это - использовать управляющие символы ANSI или внешние библиотеки, такие как ncurses.Мне было интересно, есть ли лучший способ сделать это?

Ответы [ 2 ]

4 голосов
/ 13 мая 2011

По крайней мере, с первой попытки, я бы попробовал это:

static const char symbols[] = "|/-\\";

for (int i=0; i<10000; i++)
    printf("\r%c", symbols[i%4]);
3 голосов
/ 14 мая 2011

Это просто модификация кода Джерри, которая должна компилироваться и запускаться как есть.

#include <stdio.h>
#include <unistd.h>

const char symbols[] = "|/-\\";
const int num_symbols = sizeof symbols - 1;

int main() {
    int i;
    for (i=0; i<25; i++) {
        printf("\r%c", symbols[i%num_symbols]);
        fflush(stdout);
        usleep(250000);
    }
    printf("\n");
}
...