Gogumalang / OSSL_Big_Project

0 stars 1 forks source link

Login info 비교 구현 미완성 #5

Closed K-Minhyeok closed 1 year ago

K-Minhyeok commented 1 year ago

아직 login 할 때 ID PW비교하는 함수는 구현 안 했습니다.

그리고 로그인 했을 때, 로그인한 해당 유저에게 선수가 뜨게 하는 게 가능한지 한 번 생각해보겠습니다.

시간나실 때 Login_info.c 파일 확인부탁드립니다. :)

Gogumalang commented 1 year ago

파일 확인해보니까 txt file의 내용을 모두 구조체에 넣고 구조체의 내용을 바탕으로 비교하셨더라고요, 그것도 괜찮은 방법인데, file 함수를 적절히 사용하면 file을 읽으면서 ID를 찾을 수 있어서 그런 방식으로 구현해보시는건 어떨까요? 예로 들어서 fopen("텍스트파일","r") 로 열고, while(!feof ) // 파일이 끝날 때까지 반복하다가 만약 찾고자 하는 id랑 같은 이름의 파일 속 문자열이 발견되었으면, pw도 확인해보고, 일치하면 로그인이 되는 방식.

정확히 이해가 되지 않았으면 제가 예시 코드 첨부해 보내드리겠습니다!

K-Minhyeok commented 1 year ago

제가 생각했던 건

txt파일에 저장된 구조체의 수만큼 다 가져온다 --> 사용자에게 ID입력을 받는다 --> 가져온 구조체에서 ID가 있는지 확인한다. --> 있다면 사용자에게 PW를 입력받는다. --> 해당 구조체의 PW와 같은지 비교한다.

이렇게 하려고 했거든요

구조체를 쓰려고 한 이유는 ID를 찾았을 때 그 다음 텍스트들 중 어디서부터 어디까지가 PW인지 판단하는 기능을 넣으려고 하니까, 살짝 복잡해질 것 같아서 이렇게 넣었거든요

혹시 말씀하신 건 어떤 알고리즘으로 인식하는지 알려주실 수 있나요?? 이 프로그램은 세영님이 만드셨으니 여기에는 그게 더 좋을 수도 있을 것 같아서요!

Gogumalang commented 1 year ago

login 하는 함수의 리턴값을 int 로 받아요 int 는 각 계정에 할당되는 값( 1 = 첫번째 계정 , 2 = 두번째 계정 3, = 세번째 계정)을 말합니다.

그리고 변수를 id를 입력받는 변수, id를 파일에서 찾는 변수, pw를 입력받는 변수, pw를 파일에서 찾는 변수로 크게 4가지 (+ A)로 둡니다.

파일을 읽기모드로 오픈합니다. id 입력받는 변수에 id를 입력시킵니다. while(!feof())를 사용하여 반복합니다 fscanf(file,"%s %d %d" , ID 찾는 변수, &PW찾는 변수,&리턴할 값) 만약 strcmp를 써서 id 입력변수 == id 찾는 변수 라면 pw를 입력시켜서 파일에서 가져온 PW변수와 비교합니다. 성공하면 리턴할 값을 리턴합니다. //// 나머지 추가적인 디테일은 생략하였고 핵심적인 내용만 담았습니다.

계정 txt 파일 형식 apple 0000 1 banana 1111 2 tomato 2222 3 jesus 3333 4

함수 실행 출력화면1 ID를 입력하시오 : apple pw를 입력하시오 : 0000

login 되었습니다. //리턴값: 1

함수 실행화면 2 ID : fish -> 해당 ID는 존재하지 않습니다.

함수 실행화면 3 ID : banana PW : 2222 -> 비밀번호가 1회 틀렸습니다. (1/3) PW : 4444 -> 비밀번호가 2회 틀렸습니다. (2/3) PW : 5555 -> 비밀번호가 일치하지 않습니다.

저는 이게 더 깔끔하다고 생각해서 이대로 구현 안하셔도 괜찮습니다! 비밀번호 몇회 틀렸다 이거는 예시니 굳이 안하셔도 됩니다

K-Minhyeok commented 1 year ago

참고하고 만들었습니다 fscanf를 생각 못했네요 감사합니다! :)