목록 수정하는 함수..
석죽
수정부분함수인데..음... 1을입력했을경우는되는데 다른수를 입력하면
이미등록되었습니다 라는 메세지가뜨면서 안되네요... 뭐가문제인가요??
조언부탁드립니다/...
질문 내용 :
int change_l()
{
int i,j,z;
char a[50],b[50],c[8],d[4];
while(1)
{
printf(수정하실 항목의 번호를 입력해 주세요. : );
scanf(%d,&i);
if(strlen(str[i].name)0)
{
fp2=fopen(list.txt,a);
printf(수정할 이름을 입력해 주세요 : );
scanf(%s,&a);
printf(수정할 학과를 입력해 주세요 : );
scanf(%s,&b);
printf(수정할 학번을 입력해 주세요 : );
scanf(%s,&c);
printf(수정할 나이를 입력해 주세요 : );
scanf(%2s,&d);
memset ((char *)&str[i], NULL, sizeof(str[i]) );
for(z=1;zMAX_BUF;z++)
{
if( (strcmp(str[z].name,a)==0) && (strcmp(str[z].major,b)==0) && (strcmp(str[z].grade,c)==0) && (strcmp(str[z].age,d)==0) )
{
printf(이미 등록되어 있습니다.\n);
return 0;
}else{
strcpy(str[i].name, a);
strcpy(str[i].major, b);
strcpy(str[i].grade, c);
strcpy(str[i].age, d);
}
}
fprintf(fp2,%s %s %s %s\n,&a,&b,&c,&d);
printf(수정을 완료했습니다.\n);
fclose(fp2);
fp2=fopen(list.txt,w+);
break;
}
else
{
printf(없는 번호 입니다.\n);
break;
}
}
for(j=1;j=MAX_BUF;j++)
{
if(strlen(str[j].name)0)
fprintf(fp2,%s %s %s %s\n, str[j].name, str[j].major, str[j].grade, str[j].age);
}
fclose(fp2);
return 0;
}