본문 바로가기

C/C++

scanf() newline 문제

scanf("%c", &ch)
-> 이런식으로 하나의 문자를 입력받고자 하는 경우, 문자를 입력 후 엔터키를 치는 순간 문제가 발생할 수 있다.
    바로 엔터키의 newline(\n)도 문자로 인식해 버린다는 것.
   
    fflush()함수를 쓸 수도 있지만, visual c++ 기반의 Windows에서는 효과가 있는 반면,
    gcc 기반의 환경에서는 동
작을 보장하지 못한다.

해결책 :
scanf(" %c", &ch) 이렇게, %c앞에 공백을 하나 집어 넣으면, space문자, tab 문자, newline 문자 등 제어문자를 무시할 수 있는 역할을 한다.