본문 바로가기

# IT, Computer Science/C , C++

scanf %c 연속사용시 버퍼문제

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

scanf 함수 사용시 Enter 키가 버퍼에 남아서
다음 scanf 함수 사용시 제대로 입력이 받아지지 않는 현상

<예제코드>


        char first, middle, last;

        int year;

 

        printf("Enter the current year and press enter");

        scanf("%d", &year);

 

        printf("Type in 3 initials and press enter");

        //fflush(stdin);

        scanf("%c%c%c", &first, &middle, &last);

        printf("Hello %c%c%c, let's check your coin's value in %d\n", first, middle, last, year);

 

        return 0;


해결방법 1: scanf 사용시, 다음 scanf 함수 사용전에 fflush(stdin) 로 버퍼를 비워준다. (위의 코드에서 주석을 해제) (vs경우에만해당)


해별방법 2: 두번째 scanf 사용시 scanf(" %c%c%c", &first, &middle, &last); 빨간색부분처럼 공백을 둬서 받는다.