지금 컴공1학년 재학생입니다.
동아리과제로ㅠㅠ 파일입출력 주소록 만들고있는데요ㅠㅠㅠ
int main (void)
{
int choice = 0;
FILE *fp = NULL;
fp = fopen("Juso.dat", "a+");
if(fp == NULL)
{
printf("파일 오픈 오류!!!!!!!\n");
exit(1);
}
...}
void cha_address(FILE *fp)
{
address tmp; //구조체
char name[20];
char name2[20];
fseek(fp, 0, SEEK_SET);
printf("변경할 이름을 입력하세요 : ");
gets(name);
while(fread(&tmp, sizeof(address), 1, fp))
{
if(!strcmp(tmp.name, name))
{
printf("새로운 과목명 : ");
gets(name2);
strcpy(tmp.name,name2);
}
}
fseek(fp, 0, SEEK_SET);
fwrite(&tmp, sizeof(address), 1, fp);
}
이렇게 만들었습니다.. 근데 수정시켜보면 기존데이터가 지워지지않은 상태로 그 아래에 이름만 변경되서 한번더 출력이 됩니다...
어떻게 수정해야하나요???