[C++]Neue Zeile mit putch() entfernen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • [C++]Neue Zeile mit putch() entfernen

    HI,
    Ich habe versucht eine alternative zu system("cls"); zu machen, es geht auch fast alles.
    Ich speicher wie viele zeichen in meiner eigenen Funktion benutzt wurden und die werden dann alle mit

    Quellcode

    1. ​putch(0x08);
    2. putch(' ');
    3. putch(0x08);

    entfernt.(Natürlich in einer Schleife).
    Nur wenn jetzt ein Zeilenumbruch kommt, kann man noch so oft den Code ausführen, der geht nicht weg. Wisst ihr woran das liegt?
    Ein Bug ist mehr als nur ein Bug, es ist ein... Käfer!
    Egal, wie gut du eine Mauer baust, sie fällt um.... der klügere gibt nach :D

    Willst du mit mir auf Discord Chatten/Quatschen?
    Meine Husi's Tutorial Reihe
  • Eine Theorie dazu: Das ASCII-Zeichen 0x08 ist sehr alt. Das heißt es stammt aus der Zeit, in der Computerterminals keine Bildschirme hatten, sondern Zeilendrucker. Die konnten zwar innerhalb einer Zeile zurücklaufen, aber eben das Papier nicht wieder zurückziehen um in die vorherige Zeile zu gehen.

    Insgesamt wirst du das Problem nicht mit ASCII alleine lösen können behaupte ich. Stattdessen reagieren Terminals auf bestimmte Zeichenfolgen. Keine Ahnung, wie es bei Windows ist, aber die meisten Linux-Terminals reagieren auf folgende Sequenz mit einem clear: 0x1B 0x5B 0x48 0x1B 0x5B 0x32 0x4A. Das lässt sich aber Oktal einfacher in einen String schreiben: "\033[H\033[2J". Siehe dazu auch die "terminfo" Datenbank.