전화번호부 불러오기
비사벌
전화번호부 로딩전화번호부 파일을 저장한뒤 저장한파일을 불러올때에 잘못된값이
전달됩니다질문 내용 : 어떻게하면 strtok로 정상적인값을 a,b 배열에 넣을수있을까요?
#include stdio.h
#include stdlib.h
#include string.h
#define max 1000
char* a[100][10] = {0};
char* b[100][10] = {0};
int i=0, m=1;
void in (void);
void del (void);
void se (void);
void all (void);
void lode55 (void);
main()
{
int roop = 20;
int rp = 1, irc=0;
char* lo;
char* sew[20];
file* save;
file* save2;
lode55();
while(1)
{
printf(-----------menu------------\n);
printf(\t\t\t1. insert\n); //입력
printf(\t\t\t2. delete\n); // 삭제
printf(\t\t\t3. search\n); // 검색
printf(\t\t\t4. print all\n); // 모두검색
printf(\t\t\t5. exit\n); // 나가기
printf(choose the item: );
scanf(%d,&i);
printf(\n);
if(i == 1)
{
fflush(stdin);
in(); // 입력!
}
else if(i == 2)
{
fflush(stdin);
del(); //삭제!
}
else if(i == 3)
{
fflush(stdin);
se(); //검색!
}
else if(i==4){
fflush(stdin);
all();
}
else if(i==5){
int no = 1, nt = 1;
save = fopen(name.txt,wt);
save2 = fopen(tel.txt,wt);
no = m;
while(no != 0){
fputs(a[no],save);
fputs(?,save);
fputs(b[no],save2);
fputs(?,save2);
--no;
}
exit(0);
}
}
}void in (void) //입력함수!
{
int roop=20, cho[10]={0};
char ro[20] = {0};
fflush(stdin);
printf(name: );
gets(a[m]);
fflush(stdin);
printf(tel: );
gets(b[m]);
fflush(stdin);
m++;
}
void del(void) //삭제함수!
{
char tmp[10];
int k=0, l=0;
puts([delete]);
printf(input name: );
scanf(%s, tmp);
for(k=0; k100; k++){
if(strcmp(a[k], tmp) == 0){
strcpy(a[k],(delete));
strcpy(b[k],(delete));
return 0;
}
}
puts(not founded.. \n);
return 0;
}
void se(void) //검색함수 ~!
{
char tmp[10];
int i;
puts([search]);
printf(input name: );
scanf(%s, tmp);
for(i=0; i100; i++){
if(strcmp(a[i], tmp) == 0){
printf(/name/\t/tel/\n);
printf(%s\t%s\n, a[i], b[i]);
return 0;
}
}
puts(not founded.. \n);
return 0;
}
void all(void) // 전체검색 함수!
{
int ro = m, count =0;
printf(/name/\t/tel/\n);
while(ro!=0)
{
printf(%s\t,a[ro]);
printf(%s\n,b[ro]);
--ro;
}
}
void lode55(void) //세이브한거 빼오기
{
char lolo1[max] = {0}; // 파일 포인터, 값을 입력받을 포인터 선언
char* lolo2[max] = {0};
file* lode1;
file* lode2;
int pp = 1;
char* ab, *bb;
if((lode1 = fopen(name.txt,rt)) != null){ // 파일을 불러오고 없으면 함수종료
lode2 = fopen(tel.txt,rt);
fgets(lolo1,max, lode1);
ab = strtok(lolo1, ?);
strcpy(a[pp],ab);
pp++;
while(1){
ab = strtok(null, lode1);
if(ab == null)
break;
 sp;strcpy(a[pp],ab);
pp++;
}
pp = 1;
fgets(lolo2,max,lode2);
ab = strtok(lolo2, ?);
strcpy(a[pp],ab);
pp++;
while(1){
bb = strtok(null, lode2);
if(bb == null)
break;
strcpy(a[pp],bb);
pp++;
}
}
}