Horizontal ausgerichtete Terminalausgabe

Horizontal ausgerichtete Terminalausgabe

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

fprintfDie 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:

  1. 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.

  1. Verwenden von grep zum Abgleichen von a flagund Drucken Nder 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!

verwandte Informationen