7 votes

Effacer une ligne dans la console

Comment effacer une ligne dans la console en C# ?

Je sais comment placer le curseur au début d'une ligne :

Console.SetCursorPosition(0, Console.CursorTop);

14voto

Andrew Cooper Points 21126

La méthode la plus simple consiste à se placer au début de la ligne, comme vous l'avez fait, puis à écrire une chaîne d'espaces de la même longueur que la ligne.

Console.Write(new String(' ', Console.BufferWidth));

3voto

knocte Points 4320

(Combinant ici les réponses de at.toulan et d'Andrew).

Le plus simple est d'écraser la dernière ligne :

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

Si la "nouvelle ligne de texte" est plus courte que le texte précédent, écrivez des espaces avant d'écrire votre texte, comme le dit Andrew.

2voto

aj.toulan Points 320

Lorsque le dernier espace d'une ligne de la mémoire tampon de la console est utilisé, le curseur de la console passe automatiquement à la ligne suivante.

  1. Réinitialiser le curseur au début avant qu'il n'atteigne le bord de la console
  2. Effacer l'ancienne sortie de la console, en plaçant le curseur sur la ligne suivante
  3. Réinitialiser le curseur sur la ligne qui vient d'être effacée

    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;
    }

1voto

Thomas Ertl Points 58

Après avoir défini la position du curseur, vous pouvez utiliser le retour arrière :

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X