문자를 입력받는 getchar와 같은 함수가 이상하게 동작합니다

조회수 760회

안녕하세요! 씨언어를 공부하고 있는 중에 간단한 문자를 입력받는 함수를 반복문안에서 반복적으로 실행하려고 하는데 처음에 실행되고 두 번째를 건너뛰고 세 번째를 실행하는 모습으로 짝수번째 실행을 건너뜁니다. 처음에는 함수에 문제가 있는 것인지 싶어서 scanf, getchar, getche, getch를 모두 실험해보았지만 해결되지 않았고 코드를 하나 하나씩 디버깅을 해봐도 문제의 원인을 모르겠습니다ㅠ 문제의 원인을 알고 계신다면 부디 알고싶습니다. 감사합니다!

이미지

이미지

#include <stdio.h>
#include <string.h>
#include <conio.h>

int main(void)
{
    char problem[] = "____ ___ _____ ____";
    char answer[] = "This too shall pass";
    char c;
    int i;

    while (strcmp(problem, answer) != 0) {
        printf("\n문제: %s\n", problem);
        printf("글자를 추측하시오: ");
        scanf("%c", &c);
        //c = getchar();
        //c = getche();
        //c = getch();
        for (i = 0; i < strlen(answer); i++)
            if (c == answer[i])
                problem[i] = c;
    }
    return 0;
}
  • (•́ ✖ •̀)
    알 수 없는 사용자
  • rewind(stdin)으로 입력버퍼를 초기화 시키니 문제가 해결되었습니다 알 수 없는 사용자 2018.11.21 20:37

1 답변

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)