C 프로그래밍 22

C프로그래밍 23.12.17 회원가입 수정

오늘은 회원가입 시 아이디가 있으면 동일한 아이디가 있다는 안내문구를 출력할 수 있게 수정하였다. 기존에는 동일한 아이디가 있어도 회원가입이 진행되었지만 수정한 이후에는 동일한 아이디가 있으면 바로 운내문구를 출력하고 return1;로 코드를 종료할 수 있게 하였다. 메인메뉴가 어느정도 프로그램으로써 완벽해지면 로그인 이후의 화면을 구현해봐야겠다. void signUp() { struct Member newMember; printf("아이디 입력: "); scanf_s("%s", newMember.username, sizeof(newMember.username)); for (int i = 0; i < memberCount; i++) { if (strcmp(newMember.username, members..

C 프로그래밍 2023.12.17

C프로그래밍 2023.12.16 데이터 저장

오늘은 회원가입 프로그램의 업데이트를 진행했다. 기존에 되지않던 회원정보를 저장하는 것이였다. #include #include #include #include #include #include enum userInputNum { input_SignUp = 1, input_Login = 2, input_Admin = 3, input_Exit = 4 }; struct Member { char username[50]; char password[50]; char checkPassword[50]; }; struct Member members[100]; int memberCount = 0; void sleep() { printf("정보 확인 중입니다. 잠시만 기다려주세요.\n"); Sleep(5000); system..

C 프로그래밍 2023.12.16

C프로그래밍 2023.12.15 로그인 프로그램 코드 수정 및 변화

오늘은 windows.h 헤더파일을 이용하여 로그인 프로그램을 조금 수정하였다. 프로그램 실행 시 안내를 하여 실행을 할지, 종료를 할지 선택하게 하였다.예를 선택하면 프로그램이 실행되고, 아니오를 누르면 프로그램 종료가 된다. 또한 기존 프로그램에서 회원가입과 로그인 시 회원 정보 확인 차 보여주기식으로 딜레이를 주었고, 깔끔한 화면을 유지하기 위해 system("cls");를 추가하였다. 딜레이는 Sleep로 하였고, 5초 후에 system("cls") 함수가 작동되니 한결 더 깔끔한 느낌이다.그리고 프로그램 종료 시 안내문구가 한번 더 출력되고 종료된다. 뭔가 windows 헤더파일을 사용하니 프로그램 느낌이 조금 나는 것 같기도 하다. 뭔가 응용하여 사용하면 재미있게 작성할 수 있을 것 같지만 취..

C 프로그래밍 2023.12.15

2023.12.15 새로운 프로젝트 도전

오늘은 퇴근 후 C언어로 만들만한 프로젝트가 무엇이 있을까 찾아보게 되었다. 대부분 학생들의 프로젝트가 많다보니 게임 관련 프로젝트가 많았지만 게임 개발은 취업하는데 큰 도움이 되지 않을 것 같고, (혼자만의 재미라면 모를까) 다른게 뭐가 있을까 찾아보다가 문득 떠오른 부분이 있었는데 C언어는 하드웨어와 밀접한 프로그래밍이라고 알고 있는데 C언어로 컴퓨터를 제어할 수 있지 않을까? 생각이 들었다. 그렇게 프로젝트의 주제를 선정하게 되었다. 일단은 간단하게 알림창을 띄우는 것부터 시작하여 코딩으로 간단하게 제어판을 열어본다던지, 프로그램 도중 문제가 생겼을 때 경고창을 사용자에게 보여주는 그런 부분으로 활용도 가능할 것 같고, windows.h를 활용하여 여러가지 테스트를 할 생각이다. 당장 테스트 할 하..

C 프로그래밍 2023.12.15

리눅스 C프로그래밍 23.12.12

오늘 퇴근 후 리눅스로 회원목록보기 구현 성공하였다. 테스트로 아이디를 4개 생성 후 회원목록보기로 비밀번호 입력하니 정상적으로 출력되었다. 비밀번호 역시 getpass 함수로 작성하였고, C언어 독학 후 처음으로 만든 프로그램이 완성되었다. 다음 프로젝트는 지금 프로젝트를 이어서 뭔가를 계속 만들지, 아니면 새로 만들어서 다른 함수를 이용하여 개발할 지 생각중이다. 프로젝트는 끝났으니 프로그래머스 사이트를 이용하여 C언어 공부하는 것도 나름 프로그래밍 기술을 익히는데 도움이 될 것 같기도 해서 이만 쉬고 내일 생각해봐야겠다. &나의 미래에 대한 고민 30대에 개발자로 취업하기 위해서 늦게 공부를 시작했고 올해 꼭 IT 계열로 취업해보고자 하는 마음에 23년 4월에 정보기기운용기능사를 취득하였다. 개발분..

C 프로그래밍 2023.12.13

리눅스 C프로그래밍 23.12.11

오늘은 퇴근 후 리눅스로 회원가입 프로그램 프로젝트를 이어서 시작하였다. 오늘은 새로운 코드를 알게되었다. 비밀번호 보안을 위해 getpass함수를 사용하고 싶었고, Visual Studio에서 사용했던 것처럼 1차와 2차 비밀번호 비교 후 일치하면 회원가입 성공이 되고 다르면 실패가 되게 구현하고 싶었다. 회원가입 성공 후 리스트로 아이디와 비밀번호 저장을 하고 싶었고, 로그인 시 가입되어있는 아이디와 비밀번호를 찾아 비교 후에 로그인 성공과 실패를 작동시키고 싶었다. 그래서 오늘 알게 된 코드는 비밀번호를 getpass함수로 사용자가 입력한 비밀번호를 구조체에 저장하는 코드인데 strncpy를 이용하는 것이다.//예제 //구조체 test로 생성 struct test { char Password[10]..

C 프로그래밍 2023.12.11

C프로그래밍 23.12.10

#include #include #include #include enum userInputNum { input_SignUp = 1, input_Login = 2, input_Admin = 3, input_Exit = 4 }; // 회원 정보를 저장하기 위한 구조체 struct Member { char username[50]; char password[50]; char checkPassword[50]; }; // 전역 변수로 회원 정보 배열 선언 struct Member members[100]; int memberCount = 0; void clearInputBuffer() { //사용자가 문자열 입력 시 무한루프 방지 int c; while ((c = getchar()) != '\n' && c != EO..

C 프로그래밍 2023.12.11

C프로그래밍 23.12.09

8일에 찾아본 코드를 테스트 해본 결과 혼자 생각한 결과와 조금 다르다. 구조체에 정보를 저장하는 것이 아닌 것 같다. 조금 더 테스트를 해봐야겠다. 지금은 main함수 내에 ID, PASSWORD 변수를 만들었고 init함수를 입력 후 뒤에 변수를 넣어보고 출력을 해보았는데 main함수 내에 만든 변수에는 값이 잘 저장되나 구조체에 있는 포인터 변수는 다른 값이 들어가있는 것 같다. 일단 init 함수 내에 const char *value 부분이 main함수 내 init()함수에서 뒤에 입력한 값("hello")이 init함수의 *value로 넘어가고 *value에서는 구조체의 *str로 값이 전달되는 것 같은데 이해를 잘못 하고 있는건지.. 내가 예상한건 *str에 사용자가 저장한 값이 들어갈 줄 알..

C 프로그래밍 2023.12.09