게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
c++ 고수님들 도와주세요~
게시물ID : freeboard_301478짧은주소 복사하기
작성자 : 『Rain』...
추천 : 0
조회수 : 622회
댓글수 : 28개
등록시간 : 2008/06/02 16:31:51
과제가 나왔는데 막히는 부분이 있어서요.. 오유님들 좀 도와주세요 ㅠㅠ

/* 다음과 같이 동작하는 전화번호부 프로그램을 작성하시오.
사용자가 1을 입력하면 새로운 사람의 이름과 전화번호를 입력받아, phonebook.txt에 해당 내용 추가
사용자가 2를 입력하면 찾을 사람의 이름을 입력받아, phonebook.txt에 해당 이름이 있는 지를 검색하여
전화번호 출력. 없으면 없다는 메시지 출력
사용자가 0을 입력할 때까지, 1과 2 작업을 반복해서 수행 */

#include <stdio.h>
#include <string.h>
#define MAX_NAME 20
#define MAX_PNUMBER 20

struct phonebook{
char name[MAX_NAME];
char pnumber[MAX_PNUMBER];
};

void main(void)
{
struct phonebook people[256];

int i=1,n=1,num;
int string=0;
char test[MAX_NAME];
char line[256];
FILE *fin;


do{

printf("새로운 전화번호를 입력하려면 1, 전화번호를 탐색 하려면 2, 프로그램을 종료하려면 0을 입력하세요.\n");
scanf("%d", &num);

if(num == 1)
{
fin = fopen("phonebook.txt", "a+");

if(fin == NULL)
{
printf("파일을 열수없습니다.\n");
return;
}

printf("추가할 사람의 이름과 전화번호를 입력하세요.\n");
scanf("%s %s", people[i].name, people[i].pnumber);
fprintf(fin,"%s\n%s\n", people[i].name, people[i].pnumber);

i++;
}

else if(num == 2)
{
fin = fopen("phonebook.txt", "a+");

if(fin == NULL)
{
printf("파일을 열수없습니다.\n");
return;
}

printf("검색할 사람의 이름을 입력하세요.\n");
scanf("%s",test);

while(fgets(line,255,fin) != NULL)
{
string = strcmp(line, test);

if(string == 0)
{
printf("%s의 전화번호는 %s입니다.\n", test,people[n+1].pnumber);
}

else
{
printf("검색하신 이름은 없습니다.\n");
break;
}
n++;
}
}
}while(num !=0);

return;
}


이게 제가 짠 소스인데요.. 1번을 입력하면 phonebook.txt 파일이 생성돼서 이름과 전화번호가 저장됩니다.

여기까지는 문제없이 잘되는데.. 문제는 2번을 입력하면 phonehook.txt에서 문자를 읽어와서 검색한 이름

과 일치하는지 비교해 봐야하는데.. 그부분을 잘 모르겠습니다. 저같은 경우는 strcmp 함수를 사용했는데

디버깅 해보니까 비교가 안돼는것 같습니다 ㅡ_ㅡ;; 뭔가 다른 비교함수가 있을 듯한데.. 제가 아직 초보라

서 잘모르겠네요~ 좀 도와주세요 ㅠㅠ
꼬릿말 보기
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호