Ich würde gerne wissen, ob es einen Weg in C
gibt, einen vorhandenen Wert zu überschreiben, der bereits gedruckt wurde, anstatt jedes Mal eine neue Zeile zu erstellen oder sich einfach über ein Leerzeichen zu bewegen. Ich brauche Echtzeitdaten von einem Sensor und möchte, dass er einfach dort sitzt und die bestehenden Werte ohne Scrollen aktualisiert. Ist das möglich?
UPDATE: ADDIERTER CODE
%Vor%Sie können so viele Zeilenumbrüche drucken, wie der Konsolenbildschirm hat. Dadurch wird der Bildschirm effektiv gelöscht.
Dies ist ein großartiger Link zum Löschen des Bildschirms auf verschiedene Arten.
Wo gedruckt?
Wenn Sie Daten an die Standardausgabe ausgeben, können Sie normalerweise nichts zurückholen, was bereits geschrieben wurde. Wenn Ihre Standardausgabe an Terminal gerichtet ist, können Sie versuchen, \r
-Zeichen auszugeben, das den Cursor an einigen Terminals an den Anfang der Zeile bewegt (der Effekt ist plattformabhängig), so dass die nachfolgende Ausgabezeile überschreibt, was war zuvor in dieser Zeile gedruckt. Dies wird einen visuellen Effekt von alten Daten erzeugen, die durch neue Daten ersetzt werden. Dies ersetzt jedoch nicht wirklich die alten Daten im Stream. Wenn Sie also die Standardausgabe in eine Datei umleiten, speichert die Datei alles, was gedruckt wurde. Denken Sie daran, dass \r
Sie zwingt, die gesamte Zeile auf dem Terminal zu überschreiben.
Wenn Sie Ihre Daten in eine Datei ausgeben, können Sie fseek
function verwenden, um zu einem zuvor besuchten Punkt zurückzukehren und von dort aus von vorne zu beginnen und dabei die Daten zu überschreiben.
Haben Sie das Zeichen '\ b' (Rücktaste) getestet? Funktioniert möglicherweise abhängig von Ihrer Konsole.
Tags und Links c