[C-Codeschnipsel] Progress Bar

Der folgende Codeschnipsel zaubert eine Fortschrittsanzeige ins Terminal:

void printProgress(int p, int len)
{
    int curlen = (p * len) / 100, i;
    printf("\r");
    for(i = 0; i < curlen; ++i)
        putc('_', stdout);
    putc('X', stdout);
    while(i++ < len) 
        putc(' ', stdout);
    printf("|%d%%", p);
    fflush(stdout);
}

p ist der Prozentsatz zwischen 0 und 100, len ist die Länge des Balkens. (in chars)

Wird die Funktion wiederholt aufgerufen und dazwischen keinerlei andere Ausgaben durchgeführt, wird die neue Fortschrittsleiste ersetzt.