:: 게시판
:: 이전 게시판
|
이전 질문 게시판은 새 글 쓰기를 막았습니다. [질문 게시판]을 이용바랍니다.
통합규정 1.3 이용안내 인용"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
06/09/20 21:55
아아.. 저도 1학년인데 반갑네요 지금 물어보신 내용은 저도 많이 겪었던 건데요.. 두번째 scanf 가 입력을 기다릴때 문자를 입력받기를 기다린다고 하더군요. 이때 첫번째 학번입력후 엔터등을 누르면 문자를 입력받기를 기다리던 두번째 scanf가 이 엔터를 입력으로 생각하고 저장한다고 들었습니다. 내용은 맞는지 모르겠지만.. 가장 빨리 고치는 방법은 "\n%s" 이런식으로 쓰면 고쳐지긴 할겁니다. 제가 말한 내용이 틀리다면 다음분이 고쳐주시리라 믿습니다!!
06/09/20 22:02
윗분이 설명하신게 맞고요
엔터값이 버퍼에 남아있어서 키보드로 입력한것은 stdin 스트림으로 들어가고 stdout 스트림으로 나가는건데요 엔터 친 것을 버퍼에서 지우면 해결됩니다. fflush(stdin); 이 것만 학번 입력받은 뒤 넣어주시면 됩니다. stdin 버퍼에 있는걸 없애 줍니다.
06/09/20 22:05
버퍼 제거 하지 않고 사용하는 방법도 있는데요.
바로 getchar()를 쓰는건데요. getchar()라는 함수는 한문자를 받는 건데 이 것이 엔터를 대신 받아주면서 밑의 학점 입력을 방해하지 않습니다 ^^
06/09/20 22:11
Hyo-Ri☆World님// 가르쳐주신 방법대로 해보았는데요.. 뒤에 학점 부분이 깨어져서 나오네요.. 이건 대체 또 어디서 생긴 문제인지.. fflush 때문에 생긴 문제는 아닌거같기도 한데;; ㅜ.ㅜ
|