패스워드 (암호) 입력받는 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('*'); // 화면에 별 표시
}
<이상>
'C' 카테고리의 다른 글
getchar(), getch() 문자 입력 함수 비교 예제 (0) | 2018.01.31 |
---|---|
이스케이프 시퀀스 문자 출력 예제 (0) | 2018.01.31 |
문자와 아스키 코드와의 관계 C 언어 예제 (0) | 2018.01.16 |
부동소수점형 최대값, 최소값 (0) | 2017.09.15 |
정수형 최대값, 최소값 (0) | 2017.09.15 |