로그인 기능과 중복가입방지 기능
앨런
질문 제목 : 로그인 기능과 중복가입방지기능로그인 기능과 중복가입방지기능인데요.. 돌리니깐 안되네요.ㅠㅠ질문 내용 : 구조체를 이용해서 파일에 저장을 하였다가 로그인 기능을 선택하면 아이디와 비밀번호를 치고 로그인이 되는건데
콘솔창 띄운상태서 회원가입을 하고 로그인을 하면되는데 회원가입을 하고 콘솔창을 닫았다가 다시띄운다음 로그인 할려고 하니깐 안되네요.ㅠㅠ 그리고 회원가입시 id를 입력하는데 id중복가입방지할려고 해놨는데.. 이것도 안먹히네요.ㅠㅠ
도와주세요.ㅠ 그리고 파일은 구조체는 헤더파일로 직접 만들었구요 메인소스파일하고 기능소스파일 총 3개로 돌리는 프로그램이에요. 빠른 답변부탁드릴께요.ㅠㅠ
구조체 소스
struct person{//회원 구조체
char name[10];//이름 멤버
char address[50];//주소 멤버
char id[10];//학번 멤버
char pass[10];//비밀번호 멤버
char major[20];//학부(과) 멤버
char sex[2];//성별 멤버
char age[3];//나이 멤버
}ps[10000];//회원 10000명까지 저장
소스
/////////////////////////////// 회원가입 함수 시작 /////////////////////////////////////////////////////////////////////////////////
void enter()
{
int i, index = 0;
char eid[10];
char fname[] = person.txt;
file*f;
//파일 개방
if((f = fopen(fname, a+)) == null)
{
printf(파일이 열리지 않습니다.\n);
exit(1);
}
printf(-------------------- 회원 가입 --------------------\n);
printf(이름: );
gets(ps[index].name);//이름 입력
printf(주소: );
gets(ps[index].address);//주소 입력
//중복 id검사
printf(id(학번): );
gets(eid);//id(학번)입력
for(i = 0;i 10000;i++)
{
if(strcmp(eid, ps[i].id) == 0)
{
printf(이미등록된 id입니다.\n);
break;
}
}
strcpy(ps[index].id,eid);//검사 후 값 복사
printf(비밀번호: );
gets(ps[index].pass);//비밀번호 입력
printf(학부(과): );
gets(ps[index].major);//학부(과) 입력
printf(성별: );
gets(ps[index].sex);//성별 입력
printf(나이: );
gets(ps[index].age);//나이 입력
//person.txt파일에 쓰기
fprintf(f, %s %s %s %s %s %s %s\n, ps[index].name, ps[index].address, ps[index].id, ps[index].pass, ps[index].major, ps[index].sex, ps[index].age);
//회원수 증가
index++;
//파일 닫기 / 저장
fclose(f);
fflush(stdin);
system(cls);
main();//메인으로 돌아가기
system(cls);
}
////////////////////////////// 회원가입 함수 끝 //////////////////////////////////////////////////////////////////////////////////////
////////////////////////////// 로그인 함수 시작 //////////////////////////////////////////////////////////////////////////////////////
void login()
{
int i, j, result = 0;
char id[10] = { 0 };//id입력받을 변수
char pass[10] = { 0 };//비밀번호 입력받을 변수
char fname[] = person.txt;
file*f;
//파일 개방
if((f = fopen(fname, r)) == null)
{
printf(파일이 열리지 않습니다.\n);
exit(1);
}
printf(id: );
gets(id);//id입력
printf(password: );
gets(pass);//비밀번호 입력
fflush(stdin);
system(cls);
 br
//id와 비밀번호 검사 시작
for( i = 0; i = 10000;i++)
{
if((strcmp(id, ps[i].id) == 0) && (strcmp(pass, ps[i].pass) == 0))
{
for(j = 0;j 10;j++)
{
if(id[j-1] == master)
{
fclose(f);
printf(관리자모드로 로그인되었습니다.\n);
result = 1;
master(result);//관리자모드
break;
}
else
{fclose(f);
printf(로그인되었습니다.\n);
result = 2;
student(result);//회원 모드
break;
}
}
}
else
{
printf(아이디와 비밀번호를 잘못입력하였습니다.\n);
fclose(f);
login();//다시 입력
break;
}
}
fclose(f); //파일 닫기
system(cls);
}
/////////////////////////////// 로그인 함수 끝 //////////////////////////////////////////////////////////////////////////////////////