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.hSollte 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