• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

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

23.01.09 22:12 작성 23.01.09 22:13 수정 조회수 196

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

강민철님의 프로필

강민철

2023.01.10

왜 아래 코드가 아닌

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

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

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

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

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

NULL이 반환될 수 있습니다.

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

kmhwaa08님의 프로필

kmhwaa08

질문자

2023.01.10

답변 감사드립니다.