Zeitverzögerung bei Textausgabe
-
Hallo zusammen,
ich habe eine Frage bezüglich der zeitverzögerten Textausgabe. Ich habe da auch schon einen Weg gefunden, nur ist dieser umständlich in Sachen Schreibarbeit.
Ich benutze die Sleep()- Funktion. Wenn ich "Hallo Leute" ausgeben will mit eine Zeitverzögerung von 50 msec, lautet das im Code bei mir so:#include<iostream>
#include<windows.h>
using namespace std;int main()
{
int k=50 ;
cout << "H" ; Sleep(k);
cout << "a" ; Sleep(k);
cout << "l" ; Sleep(k);
cout << "l" ; Sleep(k);
cout << "o" ; Sleep(k);
cout << " " ; Sleep(k);
cout << "L" ; Sleep(k);
cout << "e" ; Sleep(k);
cout << "u" ; Sleep(k);
cout << "t" ; Sleep(k);
cout << "e" << endl ; Sleep(k);
}Das geht ja noch aber ich will einen größeren Text ausgeben, was ziemlich nervig ist. Kennt einer von euch einen Befehl, der dies vereinfacht, sodass man am Anfang nur irgendeine Funktion implementiert, die für die gesamte Ausgabe verzögernd wirkt?
Ich bin C++ Anfänger, ich wäre dankbar wenn man mir, falls es eine Lösung gibt, diese in nicht allzu komplizierter Informatikersprache erklären könnte
.
Vielen Dank für Antworten!
-
Das wird nichtmal richtig funktionieren, zumindest nicht Plattformübergreifend. cout ist gepuffert und es kann daher passieren dass erst am Ende die Ausgabe tatsächlich auf dem Schirm erscheint. Mit dem was du da geschrieben hast wird nur das Füllen de Puffers verzögert.
-
Ja, das nennt man eine Schleife in Kombination mit einem String. Sagen dir diese Begriffe schon etwas? Ich kann dir ja mal ein einfaches Beispiel geben:
#include<iostream> #include<string> using namespace std; int main() { string text = "Hallo Welt!"; // Ein String kann eine ganze Reihe von Zeichen halten for(int i=0; i < text.length(); ++i) // Eine Schleife geht bestimmte Anweisungen immer wieder durch. // Die for-Schleife ist eine besondere Schleife die gleichzeitig auch noch eine Variable hochzählen kann { cout << text[i]<<flush; // gibt das i'te Zeichen von text aus. Das flush macht, dass das Zeichen auch wirklich erscheint und nicht gepuffert wird. sleep(50); // sleep ist eignetlich kein C++, aber das soll an dieser Stelle erstmal egal sein } cout << endl; }
-
Das mit der Verzögerung der Ausgabe hatten wir schon mal.
-
Vielen Dank! Du hast mir damit sehr geholfen. Allerdings musste ich noch windows.h "includieren" und Sleep() groß schreiben, damit der Compiler den Code annahm. #include<string> war nicht nötig, hat bei mir auch so funktioniert.
-
Sleep() ist eine WinAPI Funktion und string wird bereits durch iostream inkludiert.