"Eieruhr" in C
-
Es gibt Programme, in denen so eine Art "Eieruhr" vorkommt. besteht aus /, \ und - glaub ich und es bewegt sich (sieht aus, wie wenn es sich drehen würde.
Weiß jemand wie das geht ohne immer clear zu machen und dann das nächste Zwichen auszugeben???
-
Mit ANSI C wird das etwas schwieriger, du könntest höchstens mit \r an den Zeilenanfang und mit \b ein Zeichen vorrücken und dann den dort stehenden Text überschreiben:
//Achtung: Ohne Funktionsgarantie char* uhr="\|/-"; int i=0; while(!abbruch) { prinft("%c\r",uhr[i]); i=(i+1)%strlen(uhr); //... langwieriger Berechnungsschritt }
Außerdem bieten wohl die meisten Compiler eine Funktion ala gotoxy(), mit der du den Cursor an eine bestimmte Stelle des Monitors setzen kannst.
-
Das Problem ist, dass ich eine Funktion rekursiv aufrufe und darin auch schleifen vorkommen. Die "Eieruhr" sollte immer angezeigt werden bis mein Programm fertig ist. Die Anwender des Programms sind sehr ungeduldige Ingenieure, die den Server, auf dem mein Programm läuft, gleich neu starten, wenn sie nicht sehen, dass noch was passiert ...
-
Patrick L. schrieb:
Das Problem ist, dass ich eine Funktion rekursiv aufrufe und darin auch schleifen vorkommen. Die "Eieruhr" sollte immer angezeigt werden bis mein Programm fertig ist.
Dann solltest du aus deinem Programm heraus regelmäßig eine Hilfsfunktion aufrufen, die die Eieruhr überschreiben soll (oder eine anderweitige "ich lebe noch..."-Nachricht ausgibt). Wenn du die Ausgabe immer an der selben Stelle haben willst, such' mal nach gotoxy() oder SetCursorPos() in der Dokumentation deines Compilers.
Die Anwender des Programms sind sehr ungeduldige Ingenieure, die den Server, auf dem mein Programm läuft, gleich neu starten, wenn sie nicht sehen, dass noch was passiert ...
Tststs, Leute gibt's
Schreib denen doch vor dem Berechnungsstart groß auf den Monitor "Bitte warten - die aktuelle Berechnung kann einige Stunden in Anspruch nehmen"
-
Patrick L. schrieb:
Das Problem ist, dass ich eine Funktion rekursiv aufrufe und darin auch schleifen vorkommen. Die "Eieruhr" sollte immer angezeigt werden bis mein Programm fertig ist. Die Anwender des Programms sind sehr ungeduldige Ingenieure, die den Server, auf dem mein Programm läuft, gleich neu starten, wenn sie nicht sehen, dass noch was passiert ...
Du könntest die brechnungen auch in einem anderen Thread ausführen.