?
Uh, diese Escape-Sequenzen sind ANSI-standardisiert. Sie sind allerdings nicht Teil von C, und unter Windows muss man ein bisschen tricksen, um sie ans Laufen zu kriegen. Prinzipiell gibt es im C-Standard keine Möglichkeit, viel auf der Konsole zu machen, da sich das Programm nicht mal darauf verlassen kann, dass es überhaupt an einem interaktiven Terminal hängt (Das selbe gilt für C++, und hat schon vielen Leuten, die fflush(stdin); oder std::cin.ignore(std::cin.rdbuf()->in_avail()); benutzen wollten den Kopf zerbrochen, als ihr Code auf einmal portabel sein sollte).
Ohne Umpositionieren wirst du so oder so wohl nicht hinkommen, aber wenn dir die ANSI-Sequenzen zur Verfügung stehen, dann ist das nicht das Problem. Zum Beispiel:
#include <stdio.h>
#include <stdlib.h>
int main(void) {
int rows = dasmuesstichjetztnochrauskriegen();
for(int i = 0; i < columns; ++i) {
puts("foooooooooooooooooooooooooooooooooooO");
}
printf("\x1b[s\x1b[1A"); /* Position speichern, Zeile rauf */
for(int i = 0; i < rows - 2; ++i) {
printf("\x1b[1A\x1b[K"); /* Zeile rauf, Zeile löschen */
}
printf("\x1b[u"); /* Gespeicherte Position wiederherstellen */
return 0;
}