Verzögerte Ausgabe?



  • Moin Allerseits,

    habe da ein kleines Problem: Ich möchte einen Text in verzögerter ⚠ Ausgabe erstellen. Er soll nicht den ganzen Text auf einen Schlag zeigen, sondern Zeichen für Zeichen!

    Hat jmd. eine Ahnung? 😕

    Maze



  • void output_delayed ( std::string Text , int Delay = 10 )
    {
        for ( int i = 0 ; i < Text.length () ; ++i )
        {
            cout << Text[i];
            delay ( Delay );
        }
    }
    

    So irgendwie wenn sich da jetzt nicht wieder Pascal-Code eingeschlichen hat.

    MfG SideWinder



  • Eventl. das delay vor das cout damit nach dem letzten Buchstaben kein delay ist aber vor dem ersten - aber das kannst du selbst anpassen.

    2. Eingebunden müssen sein:

    iostream
    string
    dos.h

    Sollte es delay() nicht mehr geben - weil du zB unter der Win32-Konsole arbeitest -> Sleep() aus der windows.h.

    MfG SideWinder



  • Abend,

    habe versucht den Code wie angegeben einzubinden, hat jedoch nicht geklappt. Bin NewBie...... Könntest du mir bitte mal den Kompletten Code inkl. Bsp reinpacken?

    Thx

    Maze :p



  • @SideWinder: Ich glaube mal sollte in deine Funktion noch ein flush einbauen.



  • #include <iostream>
    #include <string>
    #include <windows.h>
    
    void output_delayed ( std::string Text , int Delay = 10 ) 
    { 
        for ( int i = 0 ; i < Text.length () ; ++i ) 
        { 
            std::cout << Text[i] << std::flush; // Namespace verwendet, Flush eingefügt
            Sleep ( Delay ); // Geändert auf Win32-Version (okay gebs ja zu das delay() auch in C gibt war Zufall ich dachte schon wíeder an TP :rolling_eyes:)
        } 
    }
    
    int main ()
    {
        output_delayed ( "Hello World" );
        std::cout << std::endl;
        output_delayed ( "Hello World , 100 );
    
        return ( 0 );
    }
    

    So hoffe das geht jetzt - wenn nicht bitte Fehlermeldung posten oder selber denken ;):).

    MfG SideWinder



  • Moin,

    jo, es hat sich ein kleiner aber feiner Fehler eingeschlichen!

    output_delayed ( "Hello World , 100 );
    

    Es sollte aber glaube ich heißen:

    output_delay("Hello World",100);
    

    Alles klar,

    Servus

    Maze



  • Jo, zum Glück nur ein Synthax-Hab-Ich-Dummerweise-Vergessen-Fehler den der Compiler sowieso auf die Zeile genau angeben kan :).

    MfG SideWinder


Anmelden zum Antworten