Mitlaufende Anzeige

Hi,

ich habe eine Schleife die Zahlen ausgibt. Die Ausgabe schreibe ich im Moment noch in ein Array und lass es mir dann nacheinander ausgeben.
Gibt es eine Function mit der die Anzeige nicht mehr Reihenweise ausgegeben werden muss, also mit cout? So wie bei einem Zähler, dass sich die Zahlt halt mitverändert in Echtzeit?

Ich hoff das ist verständlich aber ich tu mir grad ein bissl schwer mit dem erklären.

Hallo,

Gibt es eine Function mit der die Anzeige nicht mehr
Reihenweise ausgegeben werden muss, also mit cout? So wie bei
einem Zähler, dass sich die Zahlt halt mitverändert in
Echtzeit?

Das gibt es im allgemeinen Fall nicht, abhängig vom verwendeten Betriebssystem und Terminal könnte es trotzdem funktionieren.

Unter Linux/Unix gibt es z.B. die ‚curses‘ bzw. ‚ncurses‘-Bibliothek, mit der man sowas machen kann.

Grüße,
Moritz

Hallo,

einfachste aller Möglichkeiten: du formatierst die Ausgabe fest, z.B. auf 5 Stellen, und gibst nach jeder Zahl 5 x BS aus (BackSpace, ASCII 08). Die meisten Augabemedien gehen dann 5 Zeichen zurück / nach links.

Gruss Reinhard

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo,

ich habe eine Schleife die Zahlen ausgibt. Die Ausgabe
schreibe ich im Moment noch in ein Array und lass es mir dann
nacheinander ausgeben.
Gibt es eine Function mit der die Anzeige nicht mehr
Reihenweise ausgegeben werden muss, also mit cout? So wie bei
einem Zähler, dass sich die Zahlt halt mitverändert in
Echtzeit?

Die simpelste Variante wäre sowas:
[function.c]

 #include 
 #include 

 void Function(int von, int bis)
{
 char format[] = "\r\t%c %d / %d = %g %20s", zz[] = "-\\|/";
 int pos;

 for(pos=von; posAber Du hast nichts über den Kontext
geschrieben, in dem sich Deine Anwendung
befindet. Daher kann man nur raten. Sag doch
mal, was Du konkret machst.

Grüße

CMБ

Aber Du hast nichts über den Kontext

geschrieben, in dem sich Deine Anwendung
befindet. Daher kann man nur raten. Sag doch
mal, was Du konkret machst.

Grüße

CMБ

Also ich hab ne Art Stoppuhr Programiert. Im moment läuft die Anzeige im Hintergrund und zum Schluss wird nur das Ergebnis ausgegeben.
Ähm dazu hätt ich auch noch ne Frage:
Wie bekomm ich Millisekunden? Ich hab zwar schon was über eine Funktion Namens gettimeofday() und einem struct timeval gefunden aber ich weiß nicht wie ich die Millsek damit hinbekomme, vorallem weil gettimeofday() in keiner Bib zu finden ist.

Danke das mit den BS funktioniert einwandfrei! Ich dachte nur, dass die vorige Ausgabe nicht gelöscht wird, aber anscheinend doch :smile:

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Mikrosekunden
Hallo,

Ähm dazu hätt ich auch noch ne Frage:
Wie bekomm ich Millisekunden? Ich hab zwar schon was über eine
Funktion Namens gettimeofday() und einem struct timeval
gefunden aber ich weiß nicht wie ich die Millsek damit
hinbekomme, vorallem weil gettimeofday() in keiner Bib zu
finden ist.

Auf Systemen, die zu SVr4, 4.3BSD oder POSIX.1-2001 kompatibel sind, gibt es gettimeofday(), kann man so verwenden:

#include 
#include 

... 
timeval tv;
gettimeofday(&tv, NULL);
long int mikrosekunden\_seit\_mitternacht
 = 1000000\*tv.tv\_sec + tv.tv\_usec;

HTH,
Moritz

Leider ist bei mir micht der Fall, Windows is drauf.
Habs shcon mit QuerryFrequenzCounter versucht, aber klappt auch nicht so ganz.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Habs hinbekommen.

Hallo Dr.Dave,

Nimm die timeGetTime() (findest Du im MSDN), die gibt dir einzelne Milli-Sekunden zurück. Den Bildschirm kannst Du auch jedesmal löschen mit

system("cls");

(clear screen)

@Reinhard: danke für den Tipp mit BS, das kannt ich nicht.

lg
Martin B