PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Dos Fenster Output in C++


pajofego
2005-10-13, 22:28:54
Hallo Leute,

ja ich weiß...immer dieser pajofego und seine Frage bzgl. C++ :biggrin: Ist halt alles nicht so trivial in C/C++

Ich habe es endlich nach 6 Monaten geschafft meine Berechnungen zum laufen zu bringen, jetzt wollte ich einiges verschönern...

Das Problem, seht ihr an der beigelegten Grafik. Da ich über den Fortschritt meiner Berechnung bescheid wissen muss, gebe ich diesen immer aus, nur nervt's mich, dass dann immer wieder eine neue Zeile geschrieben wird! Was muss ich machen, damit hinter "Computing solution:" ... nur der Wert aktualisiert wird und nicht immer der ganze Satz in eine neue Zeile geschrieben wird?

Danke,

Gruß

pajofego

Coda
2005-10-13, 22:33:38
Geht nicht mit reinem C++. Die Funktionen dafür sind aber in der Win32-API auch sehr versteckt.

Ich würde vorschlagen du nimmst dir wxWidgets oder Qt und bastelst dir nen richtiges Fensterchen ;)

pajofego
2005-10-13, 23:30:18
Geht nicht mit reinem C++. Die Funktionen dafür sind aber in der Win32-API auch sehr versteckt.

Ich würde vorschlagen du nimmst dir wxWidgets oder Qt und bastelst dir nen richtiges Fensterchen ;)
Das ist ja schadeeeee...selber noch ein Fensterchen bauen ist mir zuviel arbeit, dann muss ich mir halt weniger ausgeben lassen oder damit leben :(

Kinman
2005-10-13, 23:33:53
soweit ich weiß gibts ein ascii zeichen das den cursor eins zurückschiebt...
Oder besser, versuch mal mit dem ascii zeichen für carrige return (cr) und ohne linefeed....Dann solltest Du deine alte ausgabe eingentlich überschreiben

mfg Kinman

noid
2005-10-14, 09:17:52
wenn du auf 6 stellen begrenzt, dann dürfte

printf("\b\b\b\b\b\b%6lf", 1.0);

dein Problem lösen. Bei mir gehts ;)

ravage
2005-10-14, 10:04:30
Mh meine C++ Kentnisse liegen schon eine Weile zurück, aber kann man unter C++ nicht auch Dos Befehle wie zb "cls" aufrufen? Das müsste doch auch zum Ziel führen.

muhkuh_rs
2005-10-14, 10:53:24
Na ihr seid ja süß ;-). "/r" ist wohl die einfachste Methode in dem Fall, wie Kinman gepostet hat.

for (int i=0; i<1000; ++i)
{
printf("i ist %d\r", i);
}

Falls sich die ausgegebenen Zahlen auch mal kürzer werden können, kann man sie entweder mit printf so formatieren, dass dann führende Nullen angefügt werden oder einfach sicherheitshalben ein paar Leerzeichen anhängen, die dafür sorgen, dass alte Sachen überschrieben werden.

Gruß Muhkuh

pajofego
2005-10-14, 23:14:51
Hey super, danke! Das ist genau das was ich gesucht habe!

Gruß

pajofego

Coda
2005-10-14, 23:28:00
Hm ich entschuldige mich für's dummschwätzen. An beliebige Stellen kann man den Cursor aber nicht schieben, deshalb die verwirrung.

DR.DEATH
2005-10-15, 02:31:33
Hm ich entschuldige mich für's dummschwätzen. An beliebige Stellen kann man den Cursor aber nicht schieben, deshalb die verwirrung.
Falls man die conio.h bzw. die freie conioex.h verwendet kann man auch die Position beliebig waehlen.

Alles in allem scheinen die Headerdateien aber auch nur irgendwelche API Sachen zu veraendern, hab die nur mal kurz in der Schule verwenden muessen.

Coda
2005-10-15, 12:21:35
Falls man die conio.h bzw. die freie conioex.h verwendet kann man auch die Position beliebig waehlen.Das ist aber kein reines C++ mehr, sondern Windows-spezifisch.