#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 함수에서 텍스트파일로 기존에 저장되있던거 불러올려는데 왜 안불러와짐??
정보 입력하고 종료후에 목록보기 하면 전에 저장했던거 나와야 되는거아님??
댓글 0