Text aus Datei auslesen und im 35-Milisekundentakt ausgeben lassen

Understood

Grünschnabel
Guten Tag!

Ich möchte gerne einen Text aus einer Datei auslesen lassen und diesen dann wiederrum in der Konsole in einem Intervall von 35-Milisekunden ausgeben lassen.

BEISPIEL:
In der Datei steht: "Beispiel zum Auslesen von Dateien"

In der Konsole ausgegeben wird: B(35Ms)e(35Ms)i(35Ms)s(35Ms)p(35Ms)i(35Ms)e(35Ms)l(35Ms) [...]

Also immer 35 Milisekunden Pause zwischen den Buchstaben, sprich als würde der Text gerade selber vom Programm geschrieben wird!

Dies möchte ich gerne mit einer mehrzeiligen Textdatei ausführen lassen!

BEISPIELTEXT:
"Hallo
wie
geht
es
Ihnen?"

Mit freundlichen Grüßen,
US. :)
 
Hallo Understood,

erstmal bräuchtest du einen Timer oder sowas wie Sleep.
Die WinAPI stellt beispielsweise die Funktion Sleep zur Verfügung, sofern du Windows nutzt.

Außerdem müsstest du dich darum kümmern, dass der Ausgabepuffer immer geleert wird (flush):
C++:
cout.flush();
Ansonsten kann es sein, dass die Ausgabe nicht exakt 35ms erscheint, sondern erst gesammelt wird und dann ausgegeben wird.

Ob alles so genau sich mit 35ms realisieren lässt, müsstest du mal ausprobieren. Auf jeden Fall musst du einplanen, dass der Performance-Hit durch cout.flush nicht zu vernachlässigen ist!
 
C:
FILE* f = fopen("text.txt","rb");
if(f == NULL) return -1;
fseek(f, 0, SEEK_END);
size_t size = ftell(f);
rewind(f);
char* buf = (char*)malloc(size);
fread(buf, 1, size, f);
for(int i = 0; i<size;i++)
{
    printf("%c", buf[i]);
    Sleep(35);
}
free(buf);
fclose(f);

Ungetestet.

Gruss
cwriter
 
Zurück