인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

kmhwaa08님의 프로필 이미지
kmhwaa08

작성한 질문수

홍정모의 따라하며 배우는 C언어

14.4 구조체의 배열 연습문제

강의 (10:06) 부분 코드 질문입니다.

작성

·

267

·

수정됨

0

printf("Input a book title or press [Enter] to stop.\n>>");

s_gets(list[cnt].title, MAX);

if (*list[cnt].title == '\0')

break;

저는 위와 같이 if문에 s_gets함수를 넣지 않고 코드를 작성했는데, 강의에서 if문을 넣은 것의 의미를 잘 모르겠어서 질문합니다.
s_gets 함수를 통해 아무것도 입력받지 못했을 때를 방지한다 <- 이 뜻이 맞을까요?

답변 1

1

왜 아래 코드가 아닌

s_gets(list[cnt].title, MAX);

아래의 코드와 같이 if문을 넣어야 하느냐는 질문인 것 같습니다.

if (s_gets(list[cnt].title, MAX) == NULL) break;

말씀하신 것처럼 간단한 예외처리입니다.

s_gets는 char *를 리턴하기 때문에

NULL이 반환될 수 있습니다.

이럴 경우 break를 하라는 코드입니다.

kmhwaa08님의 프로필 이미지
kmhwaa08
질문자

답변 감사드립니다.

kmhwaa08님의 프로필 이미지
kmhwaa08

작성한 질문수

질문하기