이 글은 C언어 독학하면서 조그만한 프로그램을 만들어보는 글입니다.
회원가입, 로그인 기능을 만들어보는 코드를 작성해보고 연습하는 개인 블로그이니 질문에 대한 답변은 어려울 수 있습니다. 이해 부탁드립니다.
#include <stdio.h>
main() {
char userId[100]; //사용자 아이디
char userPassword[100]; //사용자 비밀번호
printf("userId: ");
scanf_s("%s", userId, sizeof(userId));
//사용자가 입력한 값 저장. sizeof() 입력 필수. sizeof() 없으면 다음으로 넘어가지 않고 종료됨.
printf("userPassword: ");
scanf_s("%s", userPassword, sizeof(userPassword));
printf("아이디: %s 비밀번호: %s\n", userId, userPassword);
}
scanf_s에서 문자 입력 시 sizeof()가 꼭 있어야 한다는 것을 알게 되었습니다. 혹시라도 문자 저장 시 다음으로 넘어가지 않고 종료가 되면 sizeof()를 확인해야겠습니다.
1차 수정
#include <stdio.h>
enum loginProgram { //enum을 활용하여 switch를 다른 사람도 알아보기 쉽게 하기 위해 사용
userCreate = 1, //회원가입
userLogin = 2 //로그인
};
struct userInfo { //struct를 이용하여 로그인 정보 저장
char userId[100];
char userPassword[100];
char userCheckPassword[100]; // 사용자가 입력한 비밀번호에 대해서 비밀번호를 한번 더 입력하여
//비밀번호가 서로 일치하는지 확인하는 변수.
};
main() {
enum loginProgram login_Type;
//사용자의 선택으로 로그인 프로그램 실행.
struct userInfo userCreateInfo;
printf("[1. 회원가입]\n[2. 로그인]\n");
printf("입력: ");
scanf_s("%d", &login_Type);
//사용자의 선택 값으로 switch 실행.
printf("\n\n");
switch (login_Type) {
//enum을 이용하여 다른 개발자도 코드에 대해 쉽게 파악할 수 있도록 case 작성.
case userCreate:
printf("회원가입 화면입니다.\n");
printf("회원가입 할 ID를 입력해주세요.\n");
printf("입력: ");
scanf_s("%s", userCreateInfo.userId, sizeof(userCreateInfo.userId));
//사용자가 사용할 아이디 입력.
printf("비밀번호를 입력해주세요.\n");
printf("입력: ");
scanf_s("%s", userCreateInfo.userPassword, sizeof(userCreateInfo.userPassword));
//사용자가 사용할 비밀번호 1차 입력.
printf("비밀번호를 한번 더 입력해주세요.\n");
printf("입력: ");
scanf_s("%s", userCreateInfo.userCheckPassword, sizeof(userCreateInfo.userCheckPassword));
//사용자가 사용할 비밀번호 2차 입력
(아래부터는 수정할 예정. 1차와 2차 비밀번호를 검증하여 같으면 비밀번호 저장이 되야하고 다르면 회원가입 절차를 다시 시작해야하는데 정상적으로 되지않아 수정해서 테스트 해야겠습니다.)
if (userCreateInfo.userPassword == userCreateInfo.userCheckPassword) {
//1차, 2차 비밀번호 검증하여 if, else로 화면에 출력.
printf("입력한 비밀번호가 다릅니다. 회원가입을 종료합니다.\n");
}
else if (userCreateInfo.userPassword != userCreateInfo.userCheckPassword) {
printf("비밀번호 저장 완료.\n");
printf("입력한 ID는 %s이며, 비밀번호는 %s입니다.\n", userCreateInfo.userId, userCreateInfo.userPassword);
}
else {
printf("오류\n");
}
break;
case userLogin: //로그인
printf("userLogin\n");
break;
}
}
'C 프로그래밍' 카테고리의 다른 글
C 프로그래밍 우분투 시작 (2) | 2023.12.03 |
---|---|
C언어 프로젝트 23.12.03 (4) | 2023.12.03 |
C언어 프로젝트 23.12.02 (2) | 2023.12.02 |
C언어 프로젝트 23.12.01 (1) (5) | 2023.12.01 |
C언어 프로젝트 23.12.01 (0) | 2023.12.01 |