Turbo-C
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
터보-C 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
Lua 게시판
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C/C++ Q/A
[924] Re:while 반복문에서 처리가 이상합니다.
고니 [] 1769 읽음    2002-07-30 12:04
예를 들어 'a'를 입력하고 엔터를 쳤다고 하면
'a'말고도 엔터에 해당하는 값이 입력 스트림에 들어가게 됩니다.
그럼으로 scanf("%c",..)로 입력스트림을 받으시면 처음에는 'a'가 읽히고
님께서 원하시는 대로 처리가 됩니다. 그러나 While문에 의해 다시 scanf로 돌아왔을때
입력 스트림에 '\n'값이 남아있기 때문에 자동으로 그 값을 읽어들이게 됩니다.
그래서 말씀하신 현상이 발생한것입니다.
이를 해결하기 위한 방법은 여러개가 있을수 있지만 생각나는데로 2개만 적겠습니다.

1) while문이 끝나는 곳에서 fflush(stdin) 을 이용하여 입력스트림의 값을 모두 지웁니다.

2) scanf로 입력을 받으실때 char로 받지 마시고 scanf("%1s,..)이렇게 스트링값으로 하나만
   받습니다.

gets() 함수등을 이용하는 법도 있으니 도움말 찾아보시고 잘 생각해보시기 바랍니다.
그럼 열심히 하세요~


+ -

관련 글 리스트
923 while 반복문에서 처리가 이상합니다. 백창기 1590 2002/07/30
3463     Re:while 반복문에서 처리가 이상합니다. 마방진 1654 2002/08/10
924     Re:while 반복문에서 처리가 이상합니다. 고니 1769 2002/07/30
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.