검색결과 리스트
IT/Programming/C/C++에 해당되는 글 1건
- 2014.07.16 scanf 함수에서의 공백에 대한 의미 1
글
scanf 함수에서의 공백에 대한 의미
IT/Programming/C/C++
2014. 7. 16. 16:37
보통 scanf()나 fgets() 등의 사용자 입력을 받는 함수를 연속해서 사용할 경우 사용자는 보통 첫번째 입력 후 엔터를 눌러 개행문자까지 삽입하는데, 이 개행문자가 입력 버퍼에 남아 다음 표준입력 함수에서 이를 읽어버리는 문제가 발생한다.
이를 해결하기 위해서 보통 fflush(stdin) 등의 방식으로 입력 버퍼를 모두 비우는데, 이를 처음부터 해결할 수 있는 놀라운 방법이 있다.
바로 scanf 에서 포맷스트링을 정의해주는 첫번쨰 인자에 포맷스트링 앞에 공백을 삽입해주면 된다.
scanf(" %d", &iNum);
이렇게 쓰면 space, tab, newline 과 같은 제어문자를 무시하는 역할을 한다고 한다.
정확한건 scanf modifier 에 대하여 공식 문서를 봐야겠지만, 시간이 없는 관계로 패스!