|
예를 들어 'a'를 입력하고 엔터를 쳤다고 하면
'a'말고도 엔터에 해당하는 값이 입력 스트림에 들어가게 됩니다.
그럼으로 scanf("%c",..)로 입력스트림을 받으시면 처음에는 'a'가 읽히고
님께서 원하시는 대로 처리가 됩니다. 그러나 While문에 의해 다시 scanf로 돌아왔을때
입력 스트림에 '\n'값이 남아있기 때문에 자동으로 그 값을 읽어들이게 됩니다.
그래서 말씀하신 현상이 발생한것입니다.
이를 해결하기 위한 방법은 여러개가 있을수 있지만 생각나는데로 2개만 적겠습니다.
1) while문이 끝나는 곳에서 fflush(stdin) 을 이용하여 입력스트림의 값을 모두 지웁니다.
2) scanf로 입력을 받으실때 char로 받지 마시고 scanf("%1s,..)이렇게 스트링값으로 하나만
받습니다.
gets() 함수등을 이용하는 법도 있으니 도움말 찾아보시고 잘 생각해보시기 바랍니다.
그럼 열심히 하세요~
|