How can a line in the console be cleared in C#?
I know how to place the cursor at the beginning of a line:
Console.SetCursorPosition(0, Console.CursorTop
Once the last space of a console buffer row is used, the console cursor automatically jumps to the next line.
Reset cursor back onto the line that was just cleared
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;
}
After setting the cursor position, you can use backspace:
do { Console.Write("\b \b"); } while (Console.CursorLeft > 0);
Simplest method would be to move to the start of the line, as you have done, and then write out a string of spaces the same length as the length of the line.
Console.Write(new String(' ', Console.BufferWidth));
(Combining at.toulan and Andrew's answers here.)
Simplest is, to overwrite over the last line:
Console.SetCursorPosition(0, Console.CursorTop - 1)
Console.WriteLine("new line of text");
If "new line of text" is shorter than the text that was there before, write spaces before writing your text, like Andrew says.