La cancellazione di una riga nella console

Come una linea nella console di essere cancellato in C#?

So come posizionare il cursore all’inizio di una riga:

Console.SetCursorPosition(0, Console.CursorTop);
Google è tuo amico msdn.microsoft.com/en-us/library/system.console.clear.aspx <- primo risultato di google, primo risultato per riga : stackoverflow.com/questions/5027301/…\

OriginaleL’autore artoon | 2013-03-14

4 Replies
  1. 11

    Metodo più semplice sarebbe quello di muoversi all’inizio della linea, come avete fatto voi, e di scrivere una stringa di spazi la stessa lunghezza come la lunghezza della linea.

    Console.Write(new String(' ', Console.BufferWidth));
    Questo sembra a capo di una nuova linea per me. Come su Console.Scrivere(new String(‘ ‘, Console.BufferWidth – 1)) ??
    sicuro che non… si scrive semplicemente la linea completa! Basta spostare in alto di una riga dopo. Se si fa -1, si lascia un carattere unblanked!

    OriginaleL’autore Andrew Cooper

  2. 2

    Una volta che l’ultimo spazio di una console buffer di riga viene utilizzato, il console cursore si sposta automaticamente alla riga successiva.

    1. Reset cursore all’inizio, prima di raggiungere il bordo della console
    2. Cancellare vecchio di uscita della console, posizionando il cursore sulla riga successiva
    3. Reset cursore sulla riga che è stato appena ripulito

      while (true)
      {
        Console.Write(".");
        if (Console.CursorLeft + 1 >= Console.BufferWidth)
        {
          Console.SetCursorPosition(0, Console.CursorTop);
          Console.Write(Enumerable.Repeat<char>(' ', Console.BufferWidth).ToArray());
          Console.SetCursorPosition(0, Console.CursorTop - 1);
        }
      
        if (Console.KeyAvailable)
          break;
      }

    OriginaleL’autore aj.toulan

  3. 0

    (Combinando al.toulan e Andrea risposte qui.)

    Più semplice è, per sovrascrivere oltre l’ultima riga:

    Console.SetCursorPosition(0, Console.CursorTop - 1)
    Console.WriteLine("new line of text");

    Se “nuova riga di testo” è più corto rispetto al testo che c’era prima, spazi prima di scrivere il tuo testo, come dice Andrew.

    OriginaleL’autore knocte

  4. 0

    Dopo l’impostazione alla posizione del cursore, è possibile utilizzare il tasto backspace:

    do { Console.Write("\b \b"); } while (Console.CursorLeft > 0);

    OriginaleL’autore ro.tz

Lascia un commento