#include <stdio.h>
#include <stdlib.h>
#define SIZE 100
 struct person {      //이름과 번호 구조체
 char name[15];
 char pnumber[15];
 char blank[10];
}data[SIZE];     // 구조체 배열 선언

int i=-1;              //배열의 인덱스 값
void insert(void);  // 입력 함수
void del(void);   // 삭제 함수
void list(void);  // 목록 함수
void search(void);  // 검색 함수

FILE *fp;

int main(void)
{
 
 fp = fopen("numberlist.txt", "a+t ");
 fclose(fp);
 char n = 0;
 while (1)   //메뉴를 선택할 때까지 무한히 반복
 {
  printf("-------------전화번호부---------- ");
  printf("             1.입력 ");
  printf("             2.삭제 ");
  printf("             3,목록 ");
  printf("             4.검색 ");
  printf("             5.종료 ");
  printf("---------------------------------- ");
  scanf("%d", &n);      // 메뉴 번호 사용자로부터 입력받음
  switch (n)
  {
  case 1:
   insert();
   break;
  case 2:
   del();
   break;
  case 3:
   list();
   break;
  case 4:
   search();
   break;
  case 5:
   return 0;
  default:
   printf("잘못 입력하였습니다. ");

  }
 }


}
void insert(void) //입력 함수 생성
{
 char n[15], pn[15];    //이름과 번호를 저장하는 배열
 while (1)
 {
    
  i++;
  printf("이름을 입력하세요. (종료시 0 입력) ");
  scanf("%s", n);
  if (n[0] == '0')
   return;
  strcpy(data[i].name, n);
  printf("전화번호를 입력하세요. ");
  scanf("%s", pn); 
  strcpy(data[i].pnumber, pn);
  fp = fopen("numberlist.txt", "a+t");
  fprintf(fp, "이름 :%s  전화번호 :%s ", data[i].name, data[i].pnumber);
  fclose(fp);
 }

}

void del(void)   //삭제 함수 생성
{
 int result,select=0;
 char n[15], pn[15];
 
 printf("이름으로 검색(1) 전화번호로 검색(2)");
 switch (select)
 {
 case 1:
  printf("삭제할 이름을 입력하세요. ");
  scanf("%s", n);
  for (int s = 0; s < SIZE; s++){
   result = strcmp(data[s].name, n);
   if (result == 0) {
    strcpy(data[s].name, data[s + 1].name);
    strcpy(data[s].pnumber, data[s + 1].pnumber);
    strcpy(data[s + 1].name, "");
    strcpy(data[s + 1].pnumber, "");
    printf("삭제가 되었습니다. ");
    i--;
    break;
   }
  }
 case 2:
  printf("삭제할 전화번호를 입력하세요. ");
  scanf("%s", pn);
  for (int s = 0; s < SIZE; s++){
   result = strcmp(data[s].pnumber, n);
   if (result == 0) {
    strcpy(data[s].name, data[s + 1].name);
    strcpy(data[s].pnumber, data[s + 1].pnumber);
    strcpy(data[s + 1].name, "");
    strcpy(data[s + 1].pnumber, "");
    printf("삭제가 되었습니다. ");
    i--;
    break;
   }
  }
 }
  if (result != 0)
   printf("없는 이름입니다. ");
  return;
 
}

void list(void)
{
 fopen("numberlist.txt", "r");
 if (i == -1){
  printf("저장된 번호가 없습니다. ");
  return;
 }
 for (int j = 0; j <I; j++) {
  fscanf(fp, "이름 :%s 전화번호 :%s ", &data[j].name, &data[j].pnumber);
  printf("이름 :%s 전화번호 :%s ", data[j].name, data[j].pnumber);
 }
 fclose(fp);
}
void search(void)
{
 int result;
 char n[15];
 printf("검색할 이름을 입력하시오. ");
 scanf("%s", n);
 for (int s = 0; s <=i; s++){
  if (strstr(data[s].name, n) != NULL){
   printf("이름:%s전화번호:%s ", data[s].name, data[s].pnumber);
   if (strstr(data[s].name, n) == NULL)
    printf("찾을 수 없습니다.");
  }
 }
}



list 함수에서 텍스트파일로 기존에 저장되있던거 불러올려는데 왜 안불러와짐??

정보 입력하고 종료후에 목록보기 하면 전에 저장했던거 나와야 되는거아님??