반응형

패스워드 (암호) 입력받는 C 언어 예제

 

글. 오상문 sualchi@daum.net


 

#include <stdio.h>

 

#define ENTER_KEY 13
#define TAB_KEY 9
#define SIZE 21

 

int main(int argc, char *argv[])
{
  char pw_buf[SIZE];   // 암호 문자 최대 길이는 SIZE - 1 
 
  printf("Password: ");
  get_pw(pw_buf, SIZE); 
  printf("\nYour Password: %s\n", pw_buf);
 
  return 0;
}

 

int get_pw(char* buf, int size)
{
   int cnt = 0, key;  // 입력 받은 글자 수와 키
    
   while(1)
   {
      key = getch();  // 한 글자 입력받음
   
      if(key==ENTER_KEY || key==TAB_KEY)  // 엔터 또는 탭 키면 종료
        break;
      
      buf[cnt++] = (char)key;   // 버퍼에 글자 저장하고 카운트 1 증가  
      putchar('*');  // 화면에 별 표시
      
      if(cnt == size-1)  // 최대 크기를 넘어가면 종료
        break;
   }
   
   buf[cnt]='\0';    // 문자열로 만들기 위해 널 문자 마무리
}

 

 

-------------------------------------------------------------------------

참고로, while 문의 구조를 다음처럼 변경해도 됩니다.

 

  while(cnt < size-1)  // 길이 제한  
  {
     key = getch();  // 한 글자 입력받음
   
     if(key==ENTER_KEY || key==TAB_KEY)  // 엔터 또는 탭 키면 종료
       break;
      
     buf[cnt++] = (char)key;   // 버퍼에 글자 저장하고 카운트 1 증가 
     putchar('*');  // 화면에 별 표시
  }

 

<이상>

 

반응형

+ Recent posts