허접한 질문 드립니다.

redpig의 이미지

이제 c언어를 공부한지 얼마 안되서 허접한 질문 하나 드립니다.

char *id, *name;
FILE *fp;

fp=fopen("log","a");
fprintf(fp,"%s : %s\n",id,name);
fclose(fp);

이렇게 id와 name값을 stdin에서 받아서 log라는 파일에 기록하는 프로그램이 있는데..
여기서 id와 name값이 이미 log파일에 이전에 기록된 거면 저 fprintf문을 건너 뛸려고 합니다.
id와 name을 모두 비교할려고 하는데 잘 몰라서 일단 다음과 같이 id만 비교하는 루틴을 넣고 해봤는데 잘 안되네요..

fp=fopen("log","a");
while(!feof(fp)) {
 if(strstr(fp,id)==NULL) {
  fprintf(....);
  }
}
fclose(fp);

어떻게 하면 될까요?

hoonzang의 이미지

비교검사루틴을 넣으면 되지요.

Not to be an ASSHOLE~

jyj9782의 이미지

char *id, *name, *cid, *cname;
FILE *fp;
int flag;

fp=fopen("log","a");
while(!feof(fp)){
fscanf(fp, "%s : %s\n", &cid, &cname);

if(!strcmp(cid, id) && !strcmp(cname, name)) flag = 0;
else flag = 1;
}

if(flag==1) fprintf(fp,"%s : %s\n",id,name);

fclose(fp);

힘내세요.