ВВ
Виктор Витальевич

Как в C# скрыть ввод и вывод данных в консоль?

То есть, может есть какой то метод, для того что бы когда я ввожу текст с клавиатуры, он не отображался в консоли или заменялся символом " * " ?

Сергей Шмагин
Сергей Шмагин

using System;

namespace q86442370 {
class Program {
static void Main(string[] args) {
Console.Write("password: ");
string pwd = "";
while (true) {
ConsoleKeyInfo i = Console.ReadKey(true);
if (i.Key == ConsoleKey.Enter) {
Console.Write('\n');
break;
} else if (i.Key == ConsoleKey.Backspace) {
pwd = pwd.Remove(pwd.Length - 1);
Console.Write("\b \b");
} else {
pwd += i.KeyChar;
Console.Write("*");
}
}
Console.WriteLine("password: " + pwd);
Console.ReadKey();
}
}
}

Ор
Орест

Немного исправил вышестоящий код, завернул в метод

public static string HideCharacter()
{
string text = "";
ConsoleKeyInfo keyInfo;

while (true)
{
keyInfo = Console.ReadKey(true);
if (keyInfo.Key == ConsoleKey.Enter)
{
break;
}
else if (keyInfo.Key == ConsoleKey.Backspace)
{
if (text.Length == 0)
continue;
text = text.Remove(text.Length - 1);
Console.Write("\b \b");
}
else
{
text += keyInfo.KeyChar;
Console.Write("*");
}
}

return text;
}

Похожие вопросы
как в консольном приложении на си шарпе вводить новые данные не закрывая консоль
Программа на ввод-вывод
Си. Разработайте консольное приложение, обеспечивающее ввод с консоли и вывод на консоль - строки и вещественного числа
Перезапуск консоли в C sharp
[c++] Ввод данных с клавиатуры в многомерный массив.
Вывод данных на экран C++
нужна помощь с оператором ввода данных из файла в C++
Вывод заголовка консоли GetConsoleTitle()
Какой функцией реализовать ввод/вывод данных через LPT-порт в Pascal?
Опишите организацию ввода и вывода данных в массиве.