C 언어 예제, fgets 를 통한 문자열 입력과 표준입력버퍼(stdin) 비우기
이 포스팅은 아래의 글과 연관이 있습니다. 연관된 글 보기 : fgets 의 동작 fgets 로 입력을 받다 보면 문제가 하나 생긴다. 위의 글을 보면 짐작이 될 것이다. 바로 애초에 목표했던 범위 이상의 입력을 받을 경우 그 다음번에 실행하는 fgets 가 영향을 받게 된다는 것이다. 그림을 보고 간략히 설명을 해보자. 만약 qwer 만을 출력하는 것이 목표였는데 실수로 qwerty 를 입력했다고 하자. 일단 fgets 가 네 글자를 읽었다고 치면 표준 입력 버퍼인 stdin 에는 다음과 같은 문자열이 아직 남아있게 된다. rty + \n 즉, 다음 번에 fgets 를 또 실행하면 의도와는 상관 없이 그 fgets 는 위에 표준 입력 버퍼 stdin 에 남은 부분의 입력을 받게 된다. 그렇다면, 이러한..
컴퓨터 관련/C 언어 예제
2015. 3. 22. 04:39