lucian0910   5년 전

저는 문제를 보았을 때 위 코드처럼 eof 나올 때 까지 문자열을 저장해두다가 eof가 나오면 모든 문자열을 출력하고 종료하는 방식으로 이해했는데 삽질하고 질문으로 코드 찾아보니깐 아래 코드같이 eof 나올때까지 엔터칠때마다 문자열을 출력하는 방식이 정답이더라고요. 제가 문제를 잘 못 이해한 것일지도 모르겠지만 저처럼 헷갈리는 사람이 있을 수 있으니 문제에서 출력하는 방식에 대해 명확히 밝혀줬으면 좋겠습니다.

djm03178   5년 전

어떤 방식이든 전혀 상관 없습니다. 전자의 코드는 틀린 부분이 있으니까 틀리는 겁니다.

각 줄이 최대 100자인데 매 줄마다 99자밖에 입력을 못 받게 해놓았기 때문에 틀리게 됩니다. 또한, fgets의 경우 100자 입력을 완전하게 받으려면 개행 문자에 널 문자까지 포함해야 하므로 최소 102칸이 필요하고, fgets에도 102를 전달해야 합니다.

후자는 그런 거 상관 없이 모든 입력을 받고 그대로 출력하기 때문에 (중간에 잘리는 것도 상관 없이) 항상 정답이 됩니다.

lucian0910   5년 전

아;; 사실 100, 101까지 넣어봤는데 102를 넣어야하는줄 몰랐네요. 덕분에 좋은 사실 알고갑니다.

댓글을 작성하려면 로그인해야 합니다.