Как очистить(скрыть) только что введенную строчку в консоли C#
Мой первый вопрос на этой площадке.
Как очистить(скрыть) только что введенную информацию в консоль, не стирая при этом все что было выведено в консоль до момента ввода?
Console.WriteLine("ДЗ Заполнить массив с клавиатуры");
Console.WriteLine("Введите количество элементов массива");
string[] arrayData;
int arrayAmount = int.Parse(Console.ReadLine());
arrayData = new string[arrayAmount];
Console.WriteLine("Введите элемент массива");
for (int i = 0; i < arrayAmount; i++)
{
arrayData[i] = Console.ReadLine();//хочу чтобы эти данные после ввода не отображались в консоли
}
Console.WriteLine("Ваш массив включает:");
for (int i = 0; i < arrayData.Length; i++)
{
Console.WriteLine("Элемент массива № " + i + " содержит: " + arrayData[i]);
}
Ответы (1 шт):
Автор решения: iKuzmychov
→ Ссылка
Один из простых способов "очистить" строку таков:
Console.Write("\r" + new string(' ', Console.BufferWidth) + "\r");
Но, так как Console.ReadLine() делает переход на новую строку, перед тем очистить строку, нужно на неё вернутся:
Console.SetCursorPosition(0, Console.CursorTop - 1);
Пример:
Console.WriteLine("Hello World 1");
Console.WriteLine("Hello World 2");
Console.SetCursorPosition(0, Console.CursorTop - 1);
Console.Write("\r" + new string(' ', Console.BufferWidth) + "\r");
Console.WriteLine("Hello World 3");
Вывод в консоль:
Hello World 1
Hello World 3
Взято из ответов на аналогичный вопрос с англоязычной ветки stackoverflow.