로그인 기능과 중복가입방지 기능
앨런
질문 제목 : 로그인 기능과 중복가입방지기능로그인 기능과 중복가입방지기능인데요.. 돌리니깐 안되네요.ㅠㅠ질문 내용 : 구조체를 이용해서 파일에 저장을 하였다가 로그인 기능을 선택하면 아이디와 비밀번호를 치고 로그인이 되는건데
콘솔창 띄운상태서 회원가입을 하고 로그인을 하면되는데 회원가입을 하고 콘솔창을 닫았다가 다시띄운다음 로그인 할려고 하니깐 안되네요.ㅠㅠ 그리고 회원가입시 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);
}
/////////////////////////////// 로그인 함수 끝 //////////////////////////////////////////////////////////////////////////////////////
| 번호 | 제 목 | 글쓴이 | 날짜 |
|---|---|---|---|
| 2752142 | 더블 포인터 관련 최대최소값 구하기 (2) | 풀잎 | 2026-10-21 |
| 2752115 | c언어 이상한질문 (4) | 모드니 | 2026-10-21 |
| 2752085 | 문자열을 랜덤하게 출력해서 대체,삽입,삭제 횟수를 각가 표시하고 그걸 표 형태로 출력 | 슬아s | 2026-10-20 |
| 2752056 | 포인터 && 배열 질문요~ (2) | 해찬나래 | 2026-10-20 |
| 2752031 | x^n 구하는 코드 짜봤는데 값이 틀려요 ㅠㅠ | 세실 | 2026-10-20 |
| 2752000 | 나 정말 미치겠어요..ㅠㅜ (4) | 다이 | 2026-10-20 |
| 2751978 | 문자열 질문이요.. | 초시계 | 2026-10-19 |
| 2751945 | 숫자 맞추는 프로그램이요 ㅠㅠ (1) | 동은 | 2026-10-19 |
| 2751917 | C언어 이중 연결 관련 질문합니다. | 유우 | 2026-10-19 |
| 2751888 | return의 정확한 의미좀 알려주세요 (3) | 올해1살 | 2026-10-19 |
| 2751857 | 포인터 배열 (2) | 터큰 | 2026-10-18 |
| 2751831 | 연산자? 질문입니다 (2) | 진주 | 2026-10-18 |
| 2751800 | C언어 기초질문입니다.. (3) | 핫블랙 | 2026-10-18 |
| 2751739 | 파일 출력을 구조체로 받을 때, 파일의 끝을 판별하는 방법을 알려주세요. (2) | 얼 | 2026-10-17 |
| 2751715 | unresolved external symbol 에러... | 이룩 | 2026-10-17 |
| 2751686 | 변수 설정에 관한 질문입니다. | 꽃달 | 2026-10-17 |
| 2751655 | 자료구조 연습문제 | 한무릎 | 2026-10-17 |
| 2751631 | gets 함수 질문이요. (4) | 해늘 | 2026-10-16 |
| 2751553 | 퀵정렬 소스인데 주석좀 달아주세요 (1) | 싴흐한세여니 | 2026-10-16 |
| 2751528 | 저기 이거하는법좀 질문.. (2) | 가람슬기 | 2026-10-15 |
