c언어 - 문자열 입력받는 코드 작성중인데 질문드립니다.

wsm0315의 이미지

학교에서 문자열과 숫자를 입력받는 프로그램을 작성 중인데,
enter 를 두번 치면 while 문에서 탈출하도록 만들고 싶은데
코드를 어떻게 작성해야하나요???

#include <stdio.h>
int main(void)
{
	typedef struct Name {
		int a;
		char name[20];
	} N;
 
	N n[50];
	int i = 0, j = 0, k = 0, ch;
	char input[100];
	while (scanf("%s%d", n[i].name, &n[i].a) == 2) {
		i++;	
	}
 
	for (j = 0; j < i; ++j)
		printf("%s %d\n", n[j].name, n[j].a);
 
	return 0;
}

제가 생각한 방법은 결국 이정도인데
뭔가 좀 복잡한거 같아서요.
좀 더 간단한 방법 없을까요?

#include <stdio.h>
 
int main(void)
{
	typedef struct Name {
		int a;
		char name[20];
	} N;
 
	N n[50];
	int i = 0, j = 0, k = 0, ch;
	char input[100];
	while (scanf("%s%d", n[i].name, &n[i].a) == 2) {
		i++;	
		while (getchar() != '\n')
			;
		if ((ch = getchar()) == '\n')
			break;
		else
			ungetc(ch, stdin);
	}
 
	for (j = 0; j < i; ++j)
		printf("%s %d\n", n[j].name, n[j].a);
 
	return 0;
}