Fortschrittsanzeige



  • Hallo,

    wie verwirkliche ich eine Fortschrittsanzeige bei Konsolenprogrammen, wie z.B. hochzählende Prozente oder sich einen füllenden "Balken":

    [=====>_________ ] 30% fertig

    Danke.



  • Das einfachste ist es, den Balken immer wieder neu zu überschreiben (dazu brauchst du eine OS-Funktion, mit der du den Cursor verschieben kannst, ala gotoxy()).



  • meinst du evtl sowas in der richtung, obwohl ich beführchte es ist für dich etwas unflexibel!

    #include <stdio.h>
    
    void zeichen(int repeat);
    
    int main()
    {
        int c;
        c = 1;
        for (c = 1; c <= 10; c++)
        {
            printf("\r");
            printf("[");
            zeichen(c);
            printf("> %.0i0 Prozent fertig]", c);
            sleep(250);
        }
    getchar();
    }
    
    void zeichen(int repeat)
    {
         int count;
         for (count = 1; count <= repeat; count++)
         {
             printf("=");
         }
    }
    

    du kanst ja ein fach den courser wieder an den anfang setzten mit

    printf("\r");
    

    und dann überschreiben ...



  • Ein Tipp für ein Ladebalken, anstatt des:

    printf("=");
    

    folgendes

    printf("²²²²²");
    

    eingeben.



  • Danke!

    Das "\r" hatte mir gefehlt.

    Was sind das für hochgestellte 2en?



  • Ich hatte mal noch ein wenig das ganze neu gemacht, wer weis evtl kann es dir ja behilflich sein 😉 !

    #include <stdio.h>
    
    void zeichen(int repeat);
    
    int main()
    {
    
        int c;
    
        printf("[--------------------------------------------------] 0 Prozent fertig");
        sleep(50);
    
        for (c = 1; c <= 10; c++)
        {
            printf("\r");
            printf("[");
            zeichen(c);
            printf("] %.0i0 Prozent fertig", c);
            sleep(50);
        }
    
    }
    
    void zeichen(int repeat)
    {
         int count, x;
         for (count = 1; count <= repeat; count++)
         {
             printf("²²²²²");
         }
         for (x = 9;x >= repeat; x--)
         {
             printf("-----");
         }
    }
    

    zu den

    [h]2[/h]
    

    das ergibt das die Konsole son "ausgefülltes" ... feld anzeigt, sieht einfach besser aus.

    kannst ja gugen!

    exbs


Anmelden zum Antworten