막상 일기를 쓰려하니 무엇을 써야할지 고민하던 찰나 고맙게도 친구에게 해당 카톡이 왔다.

이게 보통 C언어에서 발생하는 문제인데 이걸 처음 직면하면 답이 없다.
왜냐하면 컴파일할때 로그를 봐도 뭐가 문제인지 안보이기 때문이다.
문제는 해당 변수를 입력하고 엔터를 입력할 때 입력버퍼에게 엔터가 남아있어서 다음 입력을 받을때 scanf가 남아있는 입력버퍼로 입력을 받아들인다는 것이다.
입력버퍼는 scanf() 같은 입력을 받는 함수에서 입력을 받을 때 입력버퍼라는 저장소에 한번 저장이 되었다가 변수로 대입하는 것이다.
그래서 저 엔터를 입력버퍼에서 지워줘야 하는데
입력버퍼를 비우는 방법은 간단하다.
사이에 getchar(); 코드를 넣어줘서 입력버퍼를 비워버리자

이렇게 말이다!

그거 말고도 여러방법이 있지만 나는 이 방법이 제일 간단한 것 같다.
근데 이게 처음에 말했듯이 오류창도 로그에도 안떠서 뭐가 문젠지 모른다.
이 글이 도움이 됬으면 좋겠다.

혹시 틀린것이 있으면 댓글로 말해주시면 감사하겠습니다.

+ Recent posts