C\#콘 솔 에 비밀 번 호 를 입력 하여 별 번 호 를 표시 하 는 방법

콘 솔 에 입력 한 내용 C\#기본 값 은 문자열 에 따라 처리 되 며,사용자 가 한 번 에 입력 을 마치 면 별 번 호 를 표시 하 는 기능 을 수행 하기 어렵다.하지만 한 번 에 한 글자 만 입력 할 수 있다 면 사용자 가 입력 한 문 자 를 별표 로 바 꾸 면 됩 니 다!
우선,C\#에서 사용자 가 다음 버튼 을 누 를 수 있 는 방법 은 바로 Console.Readkey()입 니 다.사용 자 는 한 번 에 하나의 버튼 만 누 를 수 있 습 니 다.그 중에서 다른 리 셋 방법 은 Console.ReadKey(bool b)입 니 다.bool 형식의 매개 변 수 는 콘 솔 에 사용자 가 누 른 버튼 을 표시 할 지 여 부 를 제어 하 는 데 사 용 됩 니 다.그러면 저 희 는 true 인 자 를 입력 하여 사용자 가 누 른 버튼 이 콘 솔 에 표시 되 지 않도록 할 수 있 습 니 다.그러면 커서 는 항상 원래 의 위치 에 머 무 른 다음 에 이 위치 에서*번 호 를 인쇄 하면 이 루어 집 니 다.동시에 이 방법의 반환 값 은 ConsoleKeyInfo 형식 입 니 다.MSND 를 통 해 ConsoleKeyInfo 형식 은 콘 솔 키 가 표시 하 는 문자 와 Shift,Alt,Ctrl 수정 키 의 상 태 를 설명 하 는 콘 솔 키 임 을 알 수 있 습 니 다.이 유형의 데이터 형식 은 구조 체 유형 으로 그 중에서 두 가지 중요 한 속성 인 Key 와 KeyChar 가 있 습 니 다.이 중 키 는 누 르 는 버튼 에 적용 되 는 모든 종류의 키 입 니 다.키 Char 는 사용자 가 누 르 는 버튼 에 대응 하 는 유 니 코드 인 코딩 문자 입 니 다.그러면 사용자 가 입력 한 문자열 과 사용자 가 누 른 버튼 을 얻 을 수 있 습 니 다.사용자 가 비밀 번 호 를 입력 하 는 것 은 순환 하 는 과정 입 니 다.사용자 가 버튼 을 눌 러 비밀 번 호 를 입력 할 때 문 자 를 표시 하지 않 고 같은 위치 에서*번 호 를 인쇄 한 다음 에 사용자 가 Enter 키 를 눌 렀 는 지 여 부 를 판단 하면 전체 암호 입력 과정 이 끝 납 니 다.
구체 적 인 코드 는 다음 과 같다.

//           

      //                
      string input = null;

      Console.WriteLine("     ");

      while (true)
      {
        //         ,             
        ConsoleKeyInfo ck = Console.ReadKey(true);

        //         Enter 
        if (ck.Key != ConsoleKey.Enter)
        {
          if (ck.Key != ConsoleKey.Backspace)
          {
            //              
            input += ck.KeyChar.ToString();
            //           *
            Console.Write("*");
          }
          else
          {
            //       
            Console.Write("\b \b");
          }
        }
        else
        {
          Console.WriteLine();

          break;
        }
      }

      Console.WriteLine("       {0}", input);

      Console.ReadKey();
최종 실현 효 과 는 다음 과 같다.

좋은 웹페이지 즐겨찾기