hdnua   5년 전

처음 코드는 줄 자체가 "#"과 같은지를 보려고 했는데 틀려서,

두 번째 코드는 줄에 '#' 문자가 있으면 탈출하려고 했습니다.

컴파일 에러나 런타임 에러가 아니고 그냥 틀려서, 어떤 부분에서 틀렸을지 궁금하네요.

도움 부탁합니다.

bupjae   5년 전

fgets의 두 번째 매개변수로 255를 넘기면 실제로 읽을 수 있는 건 254byte 까지입니다.

한 줄을 온전히 읽기 위해서는 입력으로 들어올 수 있는 255byte + \n + \0 까지 포함해서 257을 넘겨야 합니다.

bupjae   5년 전

참고로 fgets 의 두 번째 매개변수의 의미는 fgets가 결과값을 쓸 수 있는 메모리의 크기 입니다.

따라서는 원칙적으로는 _input 의 크기인 MAX_INPUT_LEN+10 을 넘겨주는 것이 맞습니다.

hdnua   5년 전

@bupjae

이런 이슈가 있었는지 전혀 몰랐네요. 앞으로 문자열 처리할 때는 하나로 약간 크게 잡고 해야겠습니다.

매번 도와주셔서 고마워요 :)

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