
Ich habe ein Programm, das folgende Ausgaben hat:
Pack 1:
TimeStamp : 1001302
Data : [1 21 343 2 34 ]
Found : Yes
Pack 2:
TimeStamp : 1001303
Data : [1 21 344 2 35 ]
Found : Yes
Pack 3:
TimeStamp : 1001304
Data : [1 21 346 2 36 ]
Found : Yes
und so weiter ... wiederholen
fprintf
Die Ausgaben an das Terminal werden mit C++ erstellt "\n"
. Mein Terminal muss die Position der Pakete fest an Ort und Stelle anzeigen (bei jedem Drucken eines neuen Pakets in derselben Zeile), während sich die Daten innerhalb der Klammern ändern.
Ich habe nichts dagegen, mehrere Ausgabepakete gleichzeitig auf dem Terminal zu haben, aber sie müssen an ihrem Platz fixiert sein und dürfen nicht in den Reihen auf und ab springen, sodass ich sie während der Programmausführung lesen kann.
Gibt es eine Möglichkeit, dies im Terminal sicherzustellen?
Ich habe die folgenden Lösungen ausprobiert:
- Verlangsamung des Druckens auf dem Terminal:
./out | watch -n 1 cat
Das löst das Problem nicht. Ich möchte keinen langsameren Datenstrom auf meinem Bildschirm, sondern keine Daten, die sich auf dem Terminal die Zeilen hoch und runter bewegen. Dadurch bewegen sie sich, aber langsamer.
- Verwenden von grep zum Abgleichen von a
flag
und DruckenN
der Zeilen nach:./out | grep -AN flag
Auch das löst das Problem nicht. Ich vermute, es hängt die Zeilen vom unteren Rand des Terminals an, schiebt den Text nach oben und macht das auch Zeile für Zeile. Und was Sie letztendlich sehen, ist ein Durcheinander auf dem Bildschirm.
Danke!