Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // так как из стека легко удалять последний елемент
- Stack<char> passwordChars = new Stack<char>();
- ConsoleKeyInfo keyInfo;
- do
- {
- Console.Clear();
- Console.WriteLine("Введите прароль");
- for (int i = 0; i < passwordChars.Count; i++)
- {
- Console.Write("*"); //количество звезочек по количеству символов в пароле
- }
- keyInfo = Console.ReadKey(intercept: true);
- // если бекспейс - удаляем последний елемент из стека. если в стеке не пусто
- if (keyInfo.Key == ConsoleKey.Backspace && passwordChars.Count > 0)
- {
- passwordChars.Pop();
- }
- char character = keyInfo.KeyChar;
- // проверяем на допустимый символ
- if (char.IsLetterOrDigit(character) || char.IsSymbol(character) || char.IsPunctuation(character))
- {
- passwordChars.Push(character);
- }
- } while (keyInfo.Key != ConsoleKey.Enter); // выполняем, пока не нажат ентер
- char[] charArray = passwordChars.ToArray(); //превращаем стек в массив
- Array.Reverse(charArray); //разворачиваем массив, потому, что при превращении стека в масив значения вытягиваются с конца стека,
- // от последнего положеного елемента, до первого
- string password = new string(charArray); //превращаем массив в строку
- Console.WriteLine(password);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement