C언어로 프로그램 작성 시 간혹 입력 버퍼에 남아있는 값들로 인해 코드가 꼬이는 경우가 발생합니다.

대게 C언어 처음에 배우는 입력문인 scanf로 입력 받을 경우 이러한 현상이 발생하구요.

입력문을 여러번 사용할 경우 다음 입력문에서 입력을 받지 못하고 그냥 넘어가는 현상도 입력 버퍼에 \n이 남아있어서 그렇습니다.


이 경우 입력 버퍼를 초기화시켜주는 작업이 필요한데 OS마다 이 방법이 다릅니다.


윈도우 환경

fflush(stdin);


리눅스 환경

__fpurge(stdin);


이런 현상도 방지하고 안전한 코딩을 위해 가능하면 scanf보다는 gets()를 사용하는 것을 추천합니다.





'Language > C' 카테고리의 다른 글

간단한 변수 값 스왑 팁  (0) 2014.05.22
C언어로 패스워드 입력(* 마스킹)  (2) 2014.05.19
[C언어] 입력 버퍼 지우기  (0) 2014.03.07
[C언어] 웹 사이트로 접속 요청  (0) 2014.03.07

+ Recent posts

티스토리 툴바