Seite 1 von 1

[C] clear line (Win/Linux)

Verfasst: 12.02.2011 00:45
von pyromane
Hallo,
ich bin nun dabei etwas c zu lernen. Ich möchte gerne den Status einer Berechnung ausgeben (nicht in %). Wenn ich jedoch:

Code: Alles auswählen

printf("Status: %d\n", progress);

ausgebe kommt jedes mal eine neue Zeile dazu. Das ist natürlich bei langen Berechnungen sehr doof da dies vollkommen überflüssig ist.

Ich habe nun folgendes gemacht:

Code: Alles auswählen

 printf("\r Status: %d", progress);
fflush(stdout);
so funktioniert es auch unter Linux. Allerdings gibt es ein Problem. Unter Linux passiert folgendes:

Nehmen wir an ich sage erst der Status liegt bei 10 und dann sage ich er liegt doch bei 9 also folgendes:

Code: Alles auswählen

Status: 10
//Dann kommt hier aber:
Status 90
da er zwar bis zum Anfang der Zeile geht aber nicht die Zeile löscht sondern einfach überschreibt.

Nun suche ich nach einer Lösung die für Windows und Linux (Debian 5.0 / Ubuntu) klappt.

Ich bedanke mich schon einmal bei euch.

pyromane

Re: [C] clear line (Win/Linux)

Verfasst: 12.02.2011 00:57
von NicTheQuick
Häng noch ein Leerzeichen an, das die '0' von '10' dann überschreibt. Anders geht's nicht und so mache ich das dann auch immer. ;)

Re: [C] clear line (Win/Linux)

Verfasst: 12.02.2011 00:59
von pyromane
Genau das habe ich schon probiert... Wenn dann müsste ich den Unterschied anschauen zwischen alter Ausgabe und neuer Ausgabe und dann die Anzahl an Leerzeichen nehmen... Wäre eine Möglichkeit. Gibt es keine andere? Wundert mich irgendwie, denn das ist ja etwas, was öfters vorkommt.

Re: [C] clear line (Win/Linux)

Verfasst: 12.02.2011 09:54
von DarkDragon
Du könntest die Ausgabe auf der Konsole leeren und neu draufschreiben:
http://stackoverflow.com/questions/2286 ... ux-using-c

Re: [C] clear line (Win/Linux)

Verfasst: 12.02.2011 16:49
von pyromane
Ja nur dann verschwindet ja alles was vorher war...

Re: [C] clear line (Win/Linux)

Verfasst: 12.02.2011 16:50
von DarkDragon
Und dann gibt es natürlich noch ncurses, aber ob es dafür bereits eine PB Anbindung gibt glaube ich nicht.

[EDIT]
So kann man sich irren:
http://forums.purebasic.com/german/view ... 17&start=0

Re: [C] clear line (Win/Linux)

Verfasst: 12.02.2011 21:09
von pyromane
Wie gesagt ich will das ganze ja in C machen und nicht in PB...

Re: [C] clear line (Win/Linux)

Verfasst: 13.02.2011 10:37
von DarkDragon
pyromane hat geschrieben:Wie gesagt ich will das ganze ja in C machen und nicht in PB...
Stimmt, dann kannst ja PDCurses verwenden (Funktioniert unter Windows auch).