4613번 - Quicksum
처음 코드는 줄 자체가 "#"과 같은지를 보려고 했는데 틀려서,
두 번째 코드는 줄에 '#' 문자가 있으면 탈출하려고 했습니다.
컴파일 에러나 런타임 에러가 아니고 그냥 틀려서, 어떤 부분에서 틀렸을지 궁금하네요.
도움 부탁합니다.
fgets의 두 번째 매개변수로 255를 넘기면 실제로 읽을 수 있는 건 254byte 까지입니다.
한 줄을 온전히 읽기 위해서는 입력으로 들어올 수 있는 255byte + \n + \0 까지 포함해서 257을 넘겨야 합니다.
참고로 fgets 의 두 번째 매개변수의 의미는 fgets가 결과값을 쓸 수 있는 메모리의 크기 입니다.
따라서는 원칙적으로는 _input 의 크기인 MAX_INPUT_LEN+10 을 넘겨주는 것이 맞습니다.
@bupjae
이런 이슈가 있었는지 전혀 몰랐네요. 앞으로 문자열 처리할 때는 하나로 약간 크게 잡고 해야겠습니다.
매번 도와주셔서 고마워요 :)
댓글을 작성하려면 로그인해야 합니다.
hdnua 5년 전
처음 코드는 줄 자체가 "#"과 같은지를 보려고 했는데 틀려서,
두 번째 코드는 줄에 '#' 문자가 있으면 탈출하려고 했습니다.
컴파일 에러나 런타임 에러가 아니고 그냥 틀려서, 어떤 부분에서 틀렸을지 궁금하네요.
도움 부탁합니다.