Text immer wieder an gleicher Stelle ausgeben ?
-
Hallo zusammen ...
im C++Unterforum hat man mich hierher verwiesen, deshalb hier nochmal meine Frage:
Hallo zusammen ...Ich bastel schon seit langen an einen kleinen Programm. Dabei Wird immer wieder eine For-Schleife durchlaufen in der etwas verarbeitet wird. (Teil)Ergebnisse davon und weitere Infos gebe ich als Text auf dem Bildschirm aus (printf).
Da die Schleife relativ schnell durch läuft rattert mir der text fix über den Bildschirm.Ich hätte es also lieber, wenn alle Infos immer an der gleichen Position ausgegeben würden.
Also nicht wie im folgenden Mini-Beispiel, bei dem man 40 Zeilen auf dem Schirm erhält, sondern ich will die 2 Zeilen, in denen sich immer nur die Zahlenwerte verändern.
#include <stdio.h> int main() { for (int i=0; i<20; i++) { printf("Position: %d\n",i); printf("Irgend eine weitere Information: %d\n",i*5); } return 0; }
Da gibts doch sicher eine einfache Möglichkeit, oder?
Man hat mir schon zu "\b" oder gotoxy() geraten. Mit "\b" gestaltet sich das Ganze aber doch sehr(!) umständlich und gotoxy kennt mein VS nicht...Danke schonmal
-
Welches OS? Für Windows sollte folgende gotoxy-Funktion funkionieren:
#include <windows.h> void gotoxy(int x, int y) { COORD pos; pos.X = x; pos.Y = y; SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), pos); }
-
win32/konsolenfaq, dort steht, wie es geht
-
Wenn du es schaffst, die Daten in einer Zeile zu packen, kannst du den Zeileninhalt wieder mit '\r' ueberschreiben; also den Cursor wieder an die Zeilenanfangspositions setzen. Ist im uebrigen dann auch plattformunabhaengig. Nur wie gesagt, gilt das nur fuer eine Zeile,
Gruss
Cartman