Positionierte Ausgabe in C
-
Hallo Leute,
habe mal eine Frage:
Mein Programm soll den prozentualen Fortschritt ausgeben. Wie erreiche ich es, die bereits ausgegebene Prozentzahl zu überschreiben? D.h. wie kann ich den Cursor wieder zurücksetzen?
(Ich arbeite mit MinGW)Gruß
Stefan
-
Mit ANSI C geht das gar nicht, aber such mal in der Dokumentation deines Compilers, ob du etwas zu "gotoxy" findest.
-
Die conio.h von MinGW hat das wohl nicht.
Ein etwas schwieriger Weg, der dich aber garantiert zum Ziel bringt, ist das Kapitel hier durchzulesen:
http://msdn.microsoft.com/library/en-us/dllproc/base/character_mode_applications.asp?frame=trueDamit hast du dann völlige Kontrolle über die Konsole.
Falls keine einfachere Lösung mehr kommt.
-
Es gäbe auch die Möglichkeit, mit Zeichenkonstanten wie z. B. '\b' rumzufrickeln.
n Ausgaben von '\b' setzen den Cursor n Zeichen zurück und überschreiben alle n vorherige Ausgaben.
-
unfug, geht ganz einfach:
\r springt an den zeilenanfang, \b geht ein zeichen zurueckedit: wah, ich werd lahm
-
oder nutze marcus seine improved konsole für c (ganz unten)
http://www.c-plusplus.net/code/improved_console/
(gibt es eine c und eine c++ version)ist ja seit dem umbau des konsolenfaqs schwer zu finden, sollte einfach vielleicht hier ins faq gelinkt werden, auch wenn es kein ansi c ist
-
Was ist
c.rackwitz schrieb:
unfug
?
-
curry-king schrieb:
Was ist
c.rackwitz schrieb:
unfug
?
nicht du. hab deinen post noch garnicht gesehen, wo ich geantwortet habe.
was ich stattdessen meinte waren die anderen links auf irgendwelche msdn seiten. overkill... und kein ansi c!!!1111
-
na ja.. bei mehr als ein wenig zurück ist der hinweis auf
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/console_functions.asp
sicher nicht falsch, wenn windows.. und dann der schub ins konsolenforum, oder bei linux ins entsprechende..die conio ist ja genausowenig standard und hat bei microsoft und gcc compilern sowieso nicht mehr eine positionierung mit dabei.
aber was interessiert ansi c die positionierung
-
hi
such mal nach lncurses (funktioniert nur unter linux)ansonsten kannst du es auch so probieren, dass du mit system("cls/clear"); den bildschirm(konsole) löscht und dann die veränderte zahl nochmals zeichnest
-
---linuxuser--- schrieb:
ansonsten kannst du es auch so probieren, dass du mit system("cls/clear"); den bildschirm(konsole) löscht und dann die veränderte zahl nochmals zeichnest
sehr falsch. du gehst wohl immer mit nem klotz sprengstoff aus dem haus, damit du spaeter wieder in die wohnung kommst?
-
c.rackwitz schrieb:
---linuxuser--- schrieb:
ansonsten kannst du es auch so probieren, dass du mit system("cls/clear"); den bildschirm(konsole) löscht und dann die veränderte zahl nochmals zeichnest
sehr falsch. du gehst wohl immer mit nem klotz sprengstoff aus dem haus, damit du spaeter wieder in die wohnung kommst?
DANKE