안녕하세요 C언어 질문드립니다.

안녕하세요
아래 코드에서 수정 메뉴를 선택할시에 수정이름을 입력하고 엔터를 쳐야만
이름이 뜨는데 어떤 문제 때문인지 알려주실수 있을까요?

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define SIZE 100
#pragma warning (disable :4996)
typedef struct person { // 연락처를 구조체로 표현
char name[SIZE]; // 이름
char address[SIZE]; // 주소
char mobilephone[SIZE]; // 휴대폰
char desc[SIZE]; // // 특징
}PERSON;

void menu();
PERSON get_record();
void print_record(PERSON data);
void add_record(FILE *fp);
void search_record(FILE *fp);
void update_record(FILE *fp);
void inclear(void);
int main(void)
{
FILE *fp;
int select;
//이진 파일을 추가로 오픈한다.
if ((fp = fopen(“address.dat”, “a+”)) == NULL)
{
fprintf(stderr, “입력을 위한 파일을 열 수 없습니다.”);
exit(1);
}
while (1)
{
menu(); //메뉴를 표시한다.
printf(“정수 값을 입력 하시오: “); //사용자로 부터 정수를 받는다.
scanf(”%d”, &select);

switch (select)
{
case 1: add_record(fp); //데이터를 추가한다.
{
break;
}
case 2: search_record(fp); //데이터를 탐색한다.
{
break;
}
case 3: update_record(fp); //데이터를 수정한다.
{
break;
}
case 4: return 0;
}
}
fclose(fp); //이진 파일을 닫는다.
return 0;
}
PERSON get_record()
{
PERSON data;
inclear();
printf("이름: ");
fgets(data.name, 80, stdin);
printf("주소: ");
fgets(data.address, 80, stdin);
printf("휴대폰: ");
fgets(data.mobilephone, 80, stdin);
printf("특징: ");
fgets(data.desc, 80, stdin);
return data;
}

void print_record(PERSON data)
{
printf(“이름 %s\n”, data.name);
printf(“주소 %s\n”, data.address);
printf(“휴대폰 %s\n”, data.mobilephone);
printf(“특징 %s\n”, data.desc);
}
void menu()
{
printf("======================\n");
printf(" 1.추가\n 2.검색\n 3.수정\n 4.종료\n");
printf("======================\n");
}

void add_record(FILE *fp)
{
PERSON data;
data = get_record();
fseek(fp, 0, SEEK_END);
fwrite(&data, sizeof(data), 1, fp);
}

void update_record(FILE *fp)
{
char name[SIZE];
PERSON data;
FILE *fp2;

if ((fp2 = fopen(“sujung.dat”, “w”)) == NULL)
{
fprintf(stderr, “수정을 위한 파일을 열 수 없습니다.”);
exit(1);
}
fseek(fp, 0, SEEK_SET);
inclear();
printf(“수정하려는 이름 :”);
fgets(name, 80, stdin);
while (fread(&data, sizeof(data), 1, fp) == 1)
{
if (strcmp(data.name, name) == 0)
{
data = get_record();
}
fwrite(&data, sizeof(data), 1, fp2);

}
fclose(fp2);
fclose(fp);
remove(“address.dat”);
rename(“tmp.dat”, “address2.dat”);
if ((fp = fopen(“address2.dat”, “a+”)) == NULL)
{
fprintf(stderr, “파일을 열수 없습니다”);
exit(1);
}
}

void inclear(void) {

int ch;

while ((ch = getchar()) != EOF && ch != ‘\n’);
}
void search_record(FILE *fp)
{
char name[SIZE];
PERSON data;
fseek(fp, 0, SEEK_SET);
inclear();
printf("탐색하고자 하는 사람의 이름: ");
fgets(name, 80, stdin);
while (!feof(fp))
{
fread(&data, sizeof(data), 1, fp);
if (strcmp(data.name, name) == 0)
{
print_record(data);
return;
}

}
printf(“탐색 실패\n”);
}

``` 로 코드를 둘러싸보세요