본문 바로가기
개념정복💫/C 정복

C언어 입력 오류 해결하기: getchar()로 인한 중복 출력 문제

by 옹쑥이 2025. 1. 10.

맥과 윈도우에서 코드를 작업할 것 같아, getchar()을 사용하여 입력값을 받았다.

 

여기서 중복 출력이 되는 문제가 발생하였고,

하단 입력으로 해결하였다.

 

getchar()는 한 번 입력을 받을 때마다 버퍼에 있는 문자들을 차례대로 읽어온다고 한다.

그래서 사용자가 키를 입력한 후, 엔터키를 누르면 입력 버퍼에 \n 문자가 남는다.

 

이 문자는 이후의 getchar() 호출에서 다시 읽혀서 원하지 않는 동작을 일으킬 수 있으므로!!

이를 해결하려면, 입력을 받은 후 getchar()로 남은 \n을 제거하는 코드 (while ((getchar()) != '\n');)를 추가하여 버퍼를 비워줘야 한다.