일단 과제가 채팅프로그램 만드는건데 내가 하는 부분이 파일입출력으로
메모장에 아이디랑 비밀번호 저장하고
그거 불러와서 회원관리? 하는식으로 짜긴짯는데
1에서 회원가입해서 그거 메모장으로 저장하고
7에서 로그인에서 메모장 불러와서 
그거 메모장에 저장된 문자열이랑 비교하는 코드인데
일단 비밀번호 비교하는 코드는 아직안짜고 아이디만 비교하는 코드 짜고잇는데
문제가 지금 회원가입을 하나만 하면 저게 제대로 작동되면서 넘어가는데 
회원가입 2개 이상부터는 게속 존재하지않는 id라고 게속 떠ㅠ
아 그리고 이거 프로그램창을 껐다가 다시 켜서 가입하면 기존에 가입한 회원목록이 사라지고
다시켜서 새로 가입한 회원목록만 메모장에 저장되는데 회원가입을 누적형식으로 메모장에 저장하는 방법도 

좀 알려줘 형님들 부탁이ㅑ


#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#include <process.h>

#define MAX 100


void printMenu(void);                

void InsertMenber(void);          

void Search(void);                   

void Edit(void);

void Delete(void);

void Printer(void);

void Exit(void);

void save(void);

void login(void);

void sort(void);


struct member

{

 char name[20];    //여기서 회원번호는 뺐습니다. printf함수 쓸 때 그냥 구조체 배열번호를 이용합니다

 char phone[15];

 int results;

 char grade;

 int cnt;

};

struct member group[MAX];

int cnt;

int main(void)

{

 int p;

 

 while(1)

 {

  

  printMenu();

  printf("원하는 번호를 선택하세요 : ");

  scanf("%d", &p);

  

  

  switch(p){

  case 1: InsertMenber(); 

   break;

  case 2: Search();

   break;

  case 3: Edit();

   break;

  case 4: Delete();

   break;

  case 5: Printer();

   break;

  case 6: sort();

   break;  

  case 7: login();

   break;

  case 8: save();

   break;

  case 9: Exit();

   break;

  

  

  

  }

 }

}

void printMenu()

{

 printf("*******MENU*******\n");

 printf("***1.회원 등록***\n");

 printf("***2.회원 검색***\n");

 printf("***3.회원 수정***\n");

 printf("***4.회원 삭제***\n");

 printf("***5.전체 출력***\n");

 printf("***6.정     렬***\n");

 printf("***7.불러 오기***\n");

 printf("***8.저장 하기***\n");

 printf("***9.종     료***\n\n");

}

void InsertMenber()

{

 char fname[] = "information.txt";   // p.608

 int i;

 FILE *f;

 group;

 if ( (f = fopen(fname, "w")) == NULL) // C언어 입문 p.402

 {              //주소 , 모드

  printf("파일이 열리지 않습니다.\n");

  return;

 }

 

 printf("\n[회원 등록]\n");

 printf("아이디를 입력하세요 : ");

 scanf("%s",group[cnt].name);

  

 for(i=0 ; i<cnt; i++)

{

while(strcmp(group[i].name,group[cnt].name)==0)

{

printf("이미 등록된 회원입니다.\n\n");

printf("아이디를 다시 입력해주세요 : ");

scanf("%s",group[cnt].name);

}

}

while(strlen(group[cnt].name)<4)

{

printf("아이디는 4글자 이상이여야됩니다\n");

printf("아이디를 다시 입력해주세요 : ");

scanf("%s",group[cnt].name);

}

printf("비밀번호를 입력하세요: ");

scanf("%s", group[cnt].phone);

while(strlen(group[cnt].phone)<4)

{

printf("비밀번호는 4글자 이상이여야됩니다\n");

printf("비밀번호를 다시 입력해주세요: ");

scanf("%s", group[cnt].phone);

}

fflush(stdin);

printf("\n");

cnt++;

fprintf(f, "%d\n", cnt);

for (i=0; i<cnt;i++)

{

fprintf(f, "%s %s\n",group[i].name, group[i].phone);

}    //파일 출력형식 지정함수

 fclose(f);

}


void Search()

 char ch[20];

 int i;

 printf("[회원 검색]\n");

 printf("검색할 아이디 입력: ");

 scanf("%s", ch);

 

 

 printf("검색 결과\n");

 

 for(i=0; i<cnt; i++)  

 {                                                              

  if(strcmp(group[i].name,ch)==0)

  {

   printf("%d. name: %s / Password: %s \n", i+1, group[i].name, group[i].phone);

   return;

  }  

 }

 printf("%s님은 회원으로 등록하지 않으셧습니다\n\n",ch);


  

}

void Edit()

{

 int n;

 printf("[회원 수정]\n");                             // 회원수정은 덮어쓰기 형식입니다.  , n-1 은 배열이 0부터 저장되기 때문입니다.

 printf("수정할 회원 비밀번호 입력: ");

 scanf("%d", &n);

 printf("회원 아이디 : ");

 scanf("%s", group[n-1].name);

 fflush(stdin);

 printf("회원 비밀번호 : ");

 scanf("%s", group[n-1].phone);

 fflush(stdin);

 }

void Delete()                                     // 삭제의 경우 NULL값을 대입해서 데이터 값을 없애는 형식으로 만들었습니다.

{

 int i,k=0;

 

 printf("[회원 등록]\n");

 printf("회원 id : ");

 scanf("%s",group[cnt].name);

 for(i=0 ; i<cnt ; i++)

 {

  if(strcmp(group[i].name,group[cnt].name)==0)

  {

   for(k=0; k<sizeof(group[i].name); k++)

   {

    group[i].name[k]='\0';

   }

   for(k=0; k<sizeof(group[i].phone); k++)

   {

    group[i].phone[k]='\0';

    

    group[i].results='\\\\0';             // 0으로 남아있음

    

    group[i].grade='\\\\0';    

   }

   printf("회원정보가 모두 삭제되었습니다.\n\n");

   return;

  }

 }

 printf("회원정보가 존재하지 않습니다.\n\n");  

}

void Printer()

{

 int i;

 

 printf("[전체 출력]\n");

 

 for(i=0; i<cnt; i++)

 {

  printf("%d. name: %s / Tel: %s / resluts: %d / grade: %c\n\n", i+1, group[i].name, group[i].phone, group[i].results, group[i].grade);

 }

}


void Exit()

{

 char fname[] = "information.txt";   // p.608

 int i;

 FILE *f;

 group;

 

 if ( (f = fopen(fname, "w")) == NULL) // C언어 입문 p.402

 {              //주소 , 모드

  printf("파일이 열리지 않습니다.\n");

  return;

 }

 fprintf(f, "%d\n", cnt);

 for (i=0; i<cnt;i++)

 {

  fprintf(f, "%s %s %d %c\n",group[i].name, group[i].phone, group[i].results, group[i].grade);

 }    //파일 출력형식 지정함수

 fclose(f);

 

 

 printf("[종료]\n");

 printf("프로그램을 종료합니다.\n"); 

 printf("프로그램의 내용은 자동으로 저장됩니다.\n");

 exit(1);

}

void login()

{

 char fname[] = "information.txt";   // p.608

 char id[20];

 int i;

 FILE *f;

 group;

if ( (f = fopen(fname, "r")) == NULL) // C언어 입문 p.402

 {              //주소 , 모드

 printf("파일이 열리지 않습니다.\n");

return;

 }

 fscanf(f, "%d", &cnt);

 printf("ID를 입력하세요: ");

 scanf("%s",id);

 for (i=0; i<cnt;i++)

{

fscanf(f, "%s\n",group[i].name);

while(strcmp(id,group[i].name)!=0)

 {

printf("존재하지 않는 ID입니다. ID를 다시입력해주세요\n");

printf("ID를 입력하세요: ");

scanf("%s",id);

}    //파일 출력형식 지정함수

 

}


 fclose(f);

}


void save()

{

 char fname[] = "information.txt";   // p.608

 int i;

 FILE *f;

 group;

 

 if ( (f = fopen(fname, "w")) == NULL) // C언어 입문 p.402

 {              //주소 , 모드

  printf("파일이 열리지 않습니다.\n");

  return;

 }

 fprintf(f, "%d\n", cnt);

 

 for (i=0; i<cnt;i++)

 {

  fprintf(f, "%s %s %d %c\n",group[i].name, group[i].phone, group[i].results, group[i].grade);

 }    //파일 출력형식 지정함수

 fclose(f);

}

 

void sort()//정렬함수

{

 int i,j;

 int temp;

 for(i=0 ; i<cnt-1 ; i++)

 {

  for(j=i+1; j<cnt ; j++)

  {

   if( group[i].results > group[j].results)

   {

    temp = group[i].results;

    group[i].results=group[j].results;

    group[j].results=temp;

   }

  }

 }

 for(i=0; i<cnt ; i++)

 {

  printf("%d. name: %s / Tel: %s / resluts: %d / grade: %c\n\n", i+1, group[i].name, group[i].phone, group[i].results, group[i].grade);

 }

}