scanf("%c", &ch)
-> 이런식으로 하나의 문자를 입력받고자 하는 경우, 문자를 입력 후 엔터키를 치는 순간 문제가 발생할 수 있다.
바로 엔터키의 newline(\n)도 문자로 인식해 버린다는 것.
fflush()함수를 쓸 수도 있지만, visual c++ 기반의 Windows에서는 효과가 있는 반면,
gcc 기반의 환경에서는 동작을 보장하지 못한다.
해결책 :
scanf(" %c", &ch) 이렇게, %c앞에 공백을 하나 집어 넣으면, space문자, tab 문자, newline 문자 등 제어문자를 무시할 수 있는 역할을 한다.
-> 이런식으로 하나의 문자를 입력받고자 하는 경우, 문자를 입력 후 엔터키를 치는 순간 문제가 발생할 수 있다.
바로 엔터키의 newline(\n)도 문자로 인식해 버린다는 것.
fflush()함수를 쓸 수도 있지만, visual c++ 기반의 Windows에서는 효과가 있는 반면,
gcc 기반의 환경에서는 동작을 보장하지 못한다.
해결책 :
scanf(" %c", &ch) 이렇게, %c앞에 공백을 하나 집어 넣으면, space문자, tab 문자, newline 문자 등 제어문자를 무시할 수 있는 역할을 한다.
'C/C++' 카테고리의 다른 글
[스크랩] C언어 가변인자(가변파라미터)를 사용해보자 (0) | 2014.06.11 |
---|---|
wchar_t <-> char (0) | 2013.05.30 |
[C++]OpenGL, OpenCV를 이용하여, PNG파일 불러오기(초간단) (0) | 2013.04.29 |
[C언어] 문자열 치환함수 (0) | 2012.04.27 |
포인터 (0) | 2012.03.28 |