junyoung292   7년 전

답안 제출후 "성공하였습니다"가 뜬후

몇가지 케이스를 테스트 하다보니 틀렸다고 생각되는 코드가 성공하는 것을 확인 하였습니다.

1. 배열의 크기를 2로 초기화 하여도 크기 2이상의 문자열 입력이 가능하고

2. 문제에서 100줄로 제한하였는데 아래의 코드는 100줄 이상의 문자열을 입력하여도 오류가 발생하지 않는다는 점입니다.

책도 참고해보고 인터넷도 참고해봤는데 해답을 얻지 못하여 질문드립니다.

sgchoi5   7년 전

fgets 함수의 reference 를 잘 읽어보시면 될 텐데요. 현재 작성하신 코드는 a 라는 buffer 가 있고 buffer 의 size 는 2 가 되고, 입력은 standard input 이라는 의미가 되겠습니다. fgets 함수는 buffer 의 크기가 2 이니 1 byte 를 입력 받고 나머지 한 자리는 null terminated string ('\0') 으로 채웁니다. 그리고, return 은 성공하는 경우 ( 입력이 존재) 에는 a 입니다.

a 는 항상 1 개의 char 와 null terminated string 으로 만들어지게 되고, %s 로 문자열을 출력하게 되니 입력과 동일한 출력을 하게 되는 것 입니다.


http://www.cplusplus.com/refer... 참고하셔요~~ : )

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