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

김성수님의 프로필 이미지
김성수

작성한 질문수

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

14.1 구조체가 필요한 이유

교수님 s_gets 함수를 만드는 이유는 무엇인가요?

작성

·

471

0

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#define MAX_TITLE 40
#define MAX_AUTHOR 40
#define MAX_BOOKS 3

int main()
{
	struct book
	{
		char title[MAX_TITLE];
		char author[MAX_AUTHOR];
		float price;
	};

	struct book library[MAX_BOOKS];
	int count = 0;

	while (1)
	{
		printf("input a book title or press [Enter] to stop.\n>>");
		gets(library[count].title);
		if (library[count].title[0] == '\0') break;

		printf("input the author.\n>>");
		gets(library[count].author);

		printf("iuput the price.\n>>");
		scanf("%f", &library[count].price);
		while (getchar() != '\n') continue;

		count++;
		if (count == MAX_BOOKS) break;
	}
	if (count > 0)
	{
		printf("The list of books:\n");
		for (int i = 0; i < count; i++)
			printf("\"%s\" written by %s : %.1f\n", library[i].title, library[i].author, library[i].price);
	}
	else printf("There is noo book.");

	return 0;
}

답변 2

0

김성수님의 프로필 이미지
김성수
질문자

위처럼 gets 함수를 써도 될거같은데.. 사실 전부분 강의에서  getchar 함수를 사용하는 부분을 좀 이해 못한 부분이 있긴 합니다.. 함수 나오는 강의 분:초는 4:26초 입니다.

김성수님의 프로필 이미지
김성수

작성한 질문수

질문하기