강의로 돌아가기
CODWW2

코드에 아무문제 없는데 별이 2배씩 출력됩니다.

include

//비밀 메모장

define MAX 10000

void game6() {

char line[MAX]; //파일에서 불러올때 저장
char contents[MAX]; // 입력내용
char password[20]; //비밀번호 입력
char c; //비밀번호 입력 할 때 키값 확인용 (마스킹)

printf(비밀 메모장\n);
printf(비밀번호 입력 :);

// getchar() : 엔터를 입력받아야 동작
// getch() : 키 입력시 바로 동작

int i = 0;
while (1)
{
c = getch();
if (c == 13) {//엔터
password[i] = '\0';
break;
}
else {
//입력중
printf(*);
password[i] = c;
}
i++;
}
printf(\n\n비밀번호 : %s\n, password);
}

이렇게 하고 1234 입력후 엔터하면

비밀 메모장
비밀번호 입력 : ******** >> 별이 8개 출력

비밀번호 : 1 >>> 1234 중 1만 출력됨
계속하려면 아무 키나 누르십시오 . . .

이거 뭐가 문제인가요??
비주얼 스튜디오 2017입니다.

2 개의 답변
나도코딩

안녕하세요 나도코딩입니다.
아래 코드를 실행시키면 결과가 어떻게 나오나요?

include

int main(void)
{
char c;
while (1)
{
c = getch();
printf(입력값 : %c\n, c);
}
return 0;
}

정상적이라면 1234 입력시 아래와 같이 나와야 합니다. 그렇지 않고 다른 글자들이 함께 입력된다면 후속 작업이 필요할 수도 있겠네요 (해당하는 키를 찾아서 skip 처리를 한다던지 등이요)

입력값 : 1
입력값 : 2
입력값 : 3
입력값 : 4
..

실행해보시고 다시 글 남겨주세요 !

CODWW2

입력값 : 1
입력값 :
입력값 : 2
입력값 :
입력값 : 3
입력값 :
입력값 : 4
입력값 :

이렇게 출력됩니다.

답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.