Is there a way to delete a character that has just been written using Console.WriteLine?
Is there any way to delete the last character from the console, i.e.
Console.WriteLine("List: apple,pear,");
// Somehow delete the last ',' character from the console.
Console.WriteLine(".");
// Now the console contains "List: apple,pear."
Sure, I could create a string first then print that to the console, but I'm just curious to see if I can delete characters directly from the console.
"\b" is ASCII backspace. Print it to back up one char.
Console.Write("Abc");
Console.Write("\b");
Console.Write("Def");
outputs "AbDef";
As pointed out by Contango and Sammi, there are times where overwriting with a space is required:
Console.Write("\b \b");
Console.Write("\b \b");
is probably what you want. It deletes the last char and moves the caret back.
The \b
backspace escape character only moves the caret back. It doesn't remove the last char. So Console.Write("\b");
only moves the caret one back, leaving the last character still visible.
Console.Write("\b \b");
however, first moves the caret back, then writes a whitespace character that overwrites the last char and moves the caret forward again. So we write a second \b
to move the caret back again. Now we have done what the backspace button normally does.