Verzögertes printf ??



  • Servus,

    frage mich schon lange, warum

    printf("Berechnung startet...");
    for(i=0;i<Ende;i++)
    {
    ...
    }
    printf("Fertig");
    

    in der Ausgabe nicht "Berechnung startet" und dann nach der Berechnung "Fertig" ausgibt, sondern quasi erst rechnet und dann direkt in einem Output schreibt "Berechnung startet... Fertig", dabei scheint es unerheblich zu sein, wie lange die Berechnung dauert... woran liegt das ?

    Darüberhinaus scheint dann eine Prozessanzeige in der Art "/" "-" "\" (<- als Sequenz ansehen) nicht möglich... wie macht man sowas ?

    Winn



  • Hi,

    wird nicht erst alles in einen Puffer geschrieben, der irgendwann geleert wird?

    Versuchs mal mit fflush(stdout), bevor du die Berechnung machst.

    mfg
    Martin



  • Genau liegt an der Pufferung mach vor der Schleife mal ein fflush (stdout);



  • GENIAL !! Danke, hat direkt funktioniert 👍

    Wie würde man eine "Aktivitätsanzeige" implementieren ? So vielleicht:

    EDIT: Hab's hinbekommen...

    printf("Berechnung startet...%c",47); 
    fflush(stdout)
    for(i=0;i<Ende;i++) 
    { 
    ...
    printf("\b%c",45);
    fflush(stdout)
    ...
    printf("\b%c",92);
    fflush(stdout)
    ...
    printf("\b%c",47);
    fflush(stdout)
    } 
    printf("\bFertig");
    

Anmelden zum Antworten