본문 바로가기

[ CODING STUDY ]/》C언어 공부28

C언어 - [#pragma] ▣ 안녕하세요. 이번장에서는 #pragma를 공부해보겠습니다. #pragma는 컴파일러 기능을 지정하는 비표준 전처리기입니다. #define과 비슷하지만 다른 기능들이 있으니 하나하나 코드를 작성해보겠습니다. ▣ 비주얼스튜디오를 기준으로 scanf() 함수를 작성하고 디버그를 하면 이렇게 경고가 나오는 걸 확인할 수 있습니다. ▣ scanf_s() 함수를 사용해서 경고를 해결할 수 있지만, 이렇게 #define _CRT_SECURE_NO_WARNINGS 를 맨 위에 작성하고 디버그를 하면 경고 없이 scanf() 함수를 사용할 수 있습니다. ▣ 그리고 #pragma warning(disable : 4996) 이렇게 하면 컴파일에서 4996 오류를 무시하고 진행하게 됩니다. ▣ 또 #pragma once를.. 2022. 2. 15.
C언어 27장(c언어 게임만들기_4.0 , 게임오버, 함수 응용, 배열응용, 전역변수, 조건문 활용, 반복문, 콘솔글자색 바꾸기, 배경색) ▣ 안녕하세요 저번장까지 완성해 보셨나요? 여러분들이 만든 c언어 게임이 궁금하네요 ^^ 혹시 만드시다가 피드백이 필요하신 분은 댓글 남겨주세요~~ ▣ 그럼 오늘은 플레이어 HP가 0이면 게임오버가 나오게 해 보겠습니다. 먼저 ▣ 게임 메뉴 콘솔 창에 크기를 조절해 주겠습니다. 이건 우리가 처음 시간에 하지 않았습니다. 그건 다시 게임 메뉴로 돌아올 상황이 없기 때문에, 기본 콘솔 창설 정으로 시작했지만, 이번에는 게임오버를 호출하고 다시 게임 메뉴로 돌아올 상황이 있기 때문에, 콘솔 창에 크기를 지정해주었습니다. 그렇게 하지 않으면, 우리가 게임 씬에서는 콘솔 창을 작게 정했기 때문에, 게임 메뉴 글자가 작아서 깨져서 보이겠죠? 설정한 다음에 ▣ 이번에는 전역 변수로 가서 몬스터에 파워를 지정해주겠습니.. 2020. 6. 26.
C언어 26장(c언어 게임만들기_3.5 , 랜덤함수, time함수, 함수 응용, 배열응용, 전역변수, 조건문 활용, 반복문활용, 콘솔글자색 바꾸기, 배경색) ▣ 안녕하세요 ^^ 저번장까지에 내용을 활용하여 게임 잘 만들어보셨나요? 지금까지 포기하지 않고 열심히 달려오신 분은 분명 많이 실력이 늘었을 거라 생각합니다. 코딩은 무언가 만들어갈 때 실력이 가장 빠르게 향상됩니다. 그러니 포기하지 마시고 끝까지 진행해 주세요. ▣ 그럼 오늘은 플레이어가 레벨업을 하면 파워가 오르고 그 파워에 따라 몬스터한테 공격을 할 수 있고, 그리고 몬스터가 랜덤으로 우리가 공격했을 때 아니면 몬스터가 살아있는 게임씬함수로 호출될 때 우리를 공격하는 코드를 간단하게 해 보겠습니다. ▣ 다시 말씀드리지만, 제 코딩이 정답이 아닙니다. 저는 정말 쉽게 만들자라는 생각으로 만들었습니다. 그러니 코드에 활용과 최적화 그리고 가독성을 생각하시면서 여러분들만에 게임코딩을 만들어주세요. 제가.. 2020. 6. 19.
C언어 25장(c언어 게임만들기_3, 배열응용, 응용 함수, 전역변수, 조건문 활용, 반복문, 콘솔글자색 바꾸기, 배경색) ▣ 안녕하세요 ^^ 저번장 숙제는 다해보셨나요? 이제 게임에 틀이 거의 완성되어 가고 있네요. 오늘은 플레이어가 몬스터를 죽이면 경험치가 오르고 레벨업을 하는 아주 간단한 함수를 구현해 보겠습니다. ▣ 매 장마다 말씀드리지만, 제가 만든 코딩이 정답이 아닙니다. 정말 쉽게 게임을 만들기 위해서 가독성과 최적화를 생각하지 않고 만들었기 때문에, 이점 참고해주시고 공부하면서 여러분들만에 코딩으로 바꿔서 게임을 만들어보세요. ▣ 먼저 게임 정보 함수에 플레이어에 레벨과 경험치를 표현해주는 함수를 추가해 보겠습니다. 경험치를 함수 표현한 하는 이유는 우리가 경험치 게이지를 배열로 표현해야 하기 때문입니다. ▣ 경험치게이지를 배열로 만들어서 색을 넣고 표현했습니다. 경험치에 변수값에 따라 반복하게 하게 하는 형식.. 2020. 6. 12.
C언어 24장(c언어 게임만들기_2.5, 응용 함수, 전역변수, 조건문 활용, 콘솔글자색 바꾸기, 배경색) ▣ 안녕하세요 ^^ 게임 잘 만들고 계신가요? 오류가 나고 많이 안 되는 부분들이 있으셨을 거라 생각합니다. 그 과정이 필요합니다. 코딩은 자꾸 틀리고 다시 읽어보고 고치고 하는 과정들이 필요합니다. 인내해 주세요~~ 어느새 여러분들이 많이 성장했을 겁니다. 도움이 필요하시면 방명록이나 댓글 남겨주세요~~ ▣ 오늘은 간단하게 몬스터가 등장하고 몬스터를 공격하는 코딩을 간단하게 진행해 보겠습니다. ▣ 공부하시다가 주의하실 부분은 최적화와 코딩에 가독성을 많이 생각하지 않고, 단순히 쉽게 게임을 만든다라는 목표로 게임 만들기 장을 구성했으니 이점 참고하시고 공부해 주세요~~ 제 코딩이 정답이 절대 아닙니다!!! ▣ 먼저 게임 정보를 좀 더 추가해 보겠습니다. player Hp와 공격 및 아이템 획득 문구를 .. 2020. 6. 8.
C언어 23장(c언어 게임만들기_2, 응용 함수, 전역변수, 조건문 활용, 콘솔글자색 바꾸기, 배경색) ▣ 안녕하세요 ^^ 저번장에서 배웠던 내용을 가지고 게임 잘 만들어 보셨나요?? 오늘은 저번장에 있는 내용을 활용하여 게임에 함수를 적용해보는 시간을 가져보겠습니다. ▣ 참고로 다시 한번 말씀드리지만 제 코딩이 정답은 아닙니다. 그리고 저는 누구나 쉽게 만들 수 있게 하기 위해서 쉬운 코드를 위주로 진행했습니다. 그러니 코딩에 정리 및 활용은 여러분들에 몫입니다. 잊지 마시고. 제 코딩은 참고만 해주세요. ▣ 저번장에서 배웠던 색을 넣는 함수를 우리가 만든 게임 프로젝트에 넣어보겠습니다. 우선 여기서 주의해야할건 매개변수 처음값이 배경색이라는 점 잊지 마세요^^ 반대로 하시면 안 됩니다. 그리고 2020. 6. 2.
C언어 22장(c언어 게임만들기_1.5, 응용 함수, 매개변수, enum응용, GetStdHandle, 콘솔글자색 바꾸기) ▣ 안녕하세요 ^^ 저번 시간 게임 만들기 잘해보셨나요?? 어떻게 게임을 만들고 계신지 무척 궁금하네요 ^^ 혹시 피드백이나 따로 궁금하신 게 있으시면 댓글 남겨주세요 ^^ ▣ 오늘은 저번장에 이어서 게임 만들기에서 필요한 글꼴과 글꼴 배경색을 바꾸는걸 함께 공부해보겠습니다. 간단하면 간단할 수 있지만 조금 응용적인 부분이 있어서 장를 나눠서 1.5로 정했습니다. 그러니 새로운 프로젝트를 만들어 따로 실습을 해보시고 게임 만들기에서 활용해보세요. ▣ 자 먼저 색을 바꿀 함수를 하나 만들어보도록 하겠습니다. 함수에 자료형을 반환할 값은 없으니 void로 해줍니다. 그리고 나중에 우리가 컬러에 색에 값을 각각 받아와야 하니 때문에 int형으로 배경색과 글꼴 색을 받아오는 매개변수를 만들었습니다. 그리고 우리.. 2020. 5. 28.
C언어 21장(c언어 게임만들기_1, 응용 함수, HANDLE, mmsystem, Windows,h, PlaySound, system함수) ▣ 안녕하세요^^ 저번장에 숙제해보셨나요?? 네 모두 다 해보셨을 거라 생각하고 오늘은 간단한 게임 만들기 첫 번째 장을 진행해보겠습니다. 간단한 게임이지만 가능한 쉽게 만들려고 노력했습니다. 하지만 많은 코딩들이 들어가 어려울 수 있으니 천천히 따라와 주세요. ▣ 그리고 제가 만든 게임은 여러분들이 만들 코딩에 하나에 방법일 뿐이지 정답이 아닙니다. 이걸 함께 공부하고 여러분들만에 게임을 만들어보세요. 코딩은 정답이 없습니다. 저는 그렇게 생각합니다. ▣ 이렇게 함수를 하나 만들어서 printf로 문 모양을 출력해보겠습니다. 모양은 여러분들이 원하시는 기호 아무거나 하셔두됩니다. 그리고 main함수를 통해 우리가 만든 사용자 함수를 호출해주세요. 당연히 선언하는 거 잊지 마시고요. 그럼 문 모양이 나오.. 2020. 5. 26.
C언어 20장(파일입출력, fopen, fclose, fprintf, fscanf_s, fgets, fputs, fgetc, fputc, fread, fwrite) ▣ 안녕하세요^^ 저번 시간에 숙제 잘해보셨나요?? 이제 코딩이 많이 능숙 해시셨죠?? 하지만 아직 어렵다고요? ^^ ▣ 네 당연한 것입니다. 프로그램을 가르치고 게임을 개발하는 저도 매일 공부하는데 어려운 거 같습니다. ^^ 그러니 함께 공부하며 파이팅해요. ▣ 오늘은 파일 입출력을 공부해보겠습니다. 표준 입출력이랑 비슷한 부분이 많아서 어렵지 않을 겁니다. 그러니 꼼꼼하게 읽으면서 실습하시면서 공부해주세요. ▣ 자 먼저 파일을 제어? 하기 위해 FILE이라는 구조체를 사용해야 합니다. FILE에서 오른쪽 마우스를 클릭하고 정의를 들어가면 이렇게 구조체인 것을 확인할 수 있습니다. ▣ FILE 구조체를 *fp라는 포인터로 선언 및 정의를 하고, fopen라는 함수를 이용해서 파일을 열어 모드를 적어 읽.. 2020. 5. 20.
C언어 19장(구조체, 공용체, 열거형) ▣ 안녕하세요^^ 저번장까지 포인터와 메모리를 공부했습니다. 숙제랑 잘하고 계시죠?? 꼭 하셔야 합니다. 눈으로만 읽고 끝나면 아무것도 못하게 됩니다. -_- 저도 그랬습니다. ^^;; 직접 해보시고 많이 틀려봐야 코딩 실력이 늘어납니다. ^^ 꼭 해보세요. 그리고 포인터와 함수, 배열에 활용은 계속 장 하나하나를 배우면서 익혀보도록 하겠습니다. ▣ 그럼 오늘은 구조체와 공용체 그리고 열거형을 공부해보겠습니다. ▣ 개념부터 공부해볼까요? 배열은 동일한 자료형을 모아서 만든 변수에 모임과 같았죠? 그럼 구조체는 무엇일까요? ▣ 구조체는 배열과 비슷하지만 다른 자료 형식들을 연속적으로 만들어서 사용할 수 있습니다. 공용체는 쉽게 이야기하면 구조체와 비슷하지만 메모리를 공유해서 사용한다고 생각해주세요. 그리고.. 2020. 5. 18.
C언어 18장_3(포인터, 다중포인터, 다차원 배열) ▣ 안녕하세요^^ 저번 시간에 포인터 두 번째 장 숙제 잘해보셨나요?? 여러분들에 무거운 얼굴이 보이네요 ^^;;; ▣ 하지만 여러분들은 지금 이 장을 열었다는 건 완벽하게 이해하지는 못해도 어쨌든 끝까지 포기하지 않고 하고 계시다는 이야기겠죠? 잘하시고 계십니다. 포기하지 마세요!!! 할 수 있습니다!!! 제가 이번장에서 포인터를 끝내도 다른 부분을 진행할 때 아니면 많이 틀리는 예제들이나 문제들을 한번 같이 공부해보는 장도 만들겠습니다. 그러니 한 번에 이해하지 못했다고 해서 실망하지 마세요. ▣ 그리고 제가 계속 말씀드리지만, 꼭 제 블로그로만 공부를 끝내시면 안 됩니다. 모든 분들이 가르치는 방법과 노하우와 그리고 경험이 다르기 때문에 꼭 좋은 여러 강사님들 자료를 보시면서 함께 공부해주세요. 제.. 2020. 5. 15.
C언어 17장_2(포인터, 메모리, 메모리할당, 정적변수, 리틀엔디안, malloc, memcpy, memcmp, memset, strstr) ▣ 안녕하세요^^ 저번장에 포인터 숙제 열심히 해보셨나요?? 꼼꼼하게 읽으면서 따라오셨다면 충분히 하셨을 거라 생각합니다. 그럼 오늘은 포인터 두번째로 공부해보겠습니다. 먼저 저번장에서 이야기했던 부분을 한번 보충해서 설명해보겠습니다. ▣ 저번장에 이 코드를 기억하시나요? 제가 *pList안에 number에 주소를 넣고 우리가 디버 그해서 pList메모리 주소에 있는 값을 확인했습니다. 그때 제가 주소값이 거꾸로 들어간 것에 대해 다시 설명해드린다고 했습니다. 이 부분을 설명해보겠습니다. ▣엔디언 이라는 말이 있습니다. 위키백과에서는 엔디언(Endianness)은 컴퓨터의 메모리와 같은 1차원의 공간에 여러 개의 연속된 대상을 배열하는 방법을 뜻하며, 바이트를 배열하는 방법을 특히 바이트 순서(Byte .. 2020. 5. 13.
C언어 16장_1(포인터, 메모리) ▣ 안녕하세요 ^^ 저번장에 함수 해보셨나요?? 어렵죠? 많이 ㅠ.ㅠ 하지만 포기하지 마세요!!! 하실 수 있습니다. 제가 처 음장에서 이야기한 것처럼 코딩을 꼼꼼하게 읽는 훈련을 하시면서 반복적으로 사고하고 코딩하시면 할 수 있습니다. 어려우신 게 있으시면 댓글 남겨주세요. ▣ 자 오늘은 C언어를 공부할 때 가장 어려워하는 포인터를 진행해보겠습니다. 포인터를 진행하면서 메모리에 대한 이야기도 하겠습니다. 이 부분은 할 이야기가 많아 챕터를 나누겠습니다. ▣ 제가 이걸 준비하면서 여러 책과 좋은 강사님들에 자료를 많이 읽어보고 저도 다시 공부해보았습니다. 가능하면 쉽게 설명하도록 하겠지만 여러분들이 꼭 하셔야 할 건 꼼꼼하게 코딩을 읽는 훈련을 하셔야 한다는 겁니다. 그냥 보고 무작정 어렵다고 포기하시면.. 2020. 5. 11.
C언어 15장(함수, 재귀함수, 사용자 정의 함수, 표준 함수, main 함수, return) ▣ 안녕하세요 ^^ 저번장에 숙제는 해보셨나요? 배열에 대해서 진행했습니다. 이제 우리는 배열을 활용하여 여러 문자들과 숫자들을 가지고와 코딩할 수 있게 되었네요. 그럼 오늘은 함수에 대해서 배워보겠습니다. ▣ 먼저 함수란 무엇일까요? 우리가 수학 공부를 할 때 함수라는 말을 많이 듣고 사용했을 겁니다. ▣ 자 이렇게 함수를 우리가 과거에 마술상자? 요술상자? 같은 걸로 설명을 들었을 텐데요. 저는 그렇게 들었습니다. ^^;; 그때는 저도 거의 이해하지는 못했습니다. ^^;; 그냥 우리가 저 그림을 보고 쉽게 생각해보겠습니다. 우리가 값을 넣으면 저렇게 함수 원형 안에서 연산이 되고 결과를 준다.라고 생각하시면 될꺼같습니다. 진짜 그렇습니다. ▣ 자 함수를 한번 만들어보겠습니다. 우리가 int main(.. 2020. 5. 6.
C언어 14장(배열, 문자열, Array, Null terminated) ▣ 안녕하세요^^ 저번 시간에 숙제는 해보셨죠?? for 별찍기와 완성한 코딩을 해석해보는 것까지가 숙제였습니다. 많이 어려우셨겠지만 모두 다 해내셨을 거라 생각합니다. 아 그리고 30분이상 고민했는데 정말 안된다 노트에 쓰고해도 안된다고 하시면 정말 많은 좋은 분들에 자료가 있습니다. 코딩을 한번 참고해주시고 그걸 해석하면서 공부하고 다시 자신만에 코딩으로 만들어보세요. 그래야 실력이 늘어납니다. 다른분들이 만든 코딩에 코드를 외우시면 안 됩니다.!!! 그럼 오늘 배열에 대해서 배워보겠습니다. ▣ 제가 scanf_s 입출력을 했을 때 잠깐 공부했습니다. 하지만 오늘은 좀 더 깊이 코딩을 진행해보겠습니다. 먼저 배열이 왜 필요한지 알아보겠습니다. ▣ 자 우리가 각각 이렇게 변수를 여러 개 만들어서 값을 .. 2020. 5. 4.
C언어 13장(반복문, for문, 알고리즘) ▣ 안녕하세요 ^^ 저번장에 while문 숙제해보셨나요? 숫자 맞추기 게임을 만드는 게 숙제였습니다. 해보셨죠?? ㅎㅎ 많이 어려우셨을 거라 생각합니다. ▣ 보통 c언어를 배울 때 첫 번째 고비가 이 반복문 부분입니다. 오늘 미션으로도 해볼 별 찍기에서 많은 분들이 멘붕이 되고 포기를 많이 합니다. ▣ 하지만 겁먹지 마세요. 여러분들은 할 수 있습니다. 제가 처음장 부터 이야기 한 것처럼 코딩을 꼼꼼하게 읽는 훈련을 했기 때문입니다. ▣ 오늘 for문을 배울 때 이 읽는 훈련을 잊지 마시면서 천천히 코딩을 해석하면 오늘 할 별 찍기도 할 수 있습니다. 그리고 제가 숙제 정답은 올리지 않습니다. ▣ 제 코딩이 정답이라고 생각할 수 있기 때문도 있지만, 여러분들이 여러 좋은 강사님들과 여러 자료들을 찾아보면.. 2020. 5. 1.
C언어 12장(반복문, while문, do while문, 알고리즘) ▣ 안녕하세요 ^^ 저번장에 숙제는 잘해보셨나요? 이제 점점 코딩을 읽는 것부터가 어려울 수 있습니다. 그러니 이제는 정말 꼼꼼하게 코딩을 읽는 연습을 하셔야 합니다. ▣ 자 오늘은 제어문에 있는 반복문 그중에 while문을 먼저 진행하도록 하겠습니다. 저번장에 배웠던 조건문을 모두 다 이해하셨다면 반복문도 어렵지 않을 겁니다. ▣ 자 먼저 반복문은 왜 필요할까요? 이렇게 제가 두 번 암호를 입력받는 코딩을 만들었습니다. ▣ 여기서 잠깐 다시 한번 복습하면 입출력을 배울 때 이야기했듯이 scanf_s에서 " % c"형식을 지정할 때 띄어쓰기를 하는 이유는 띄어쓰기를 넣어야 화이트 스페이스인 엔터를 구분자로 인식하기 때문입니다. 저렇게 하지 않으면 위에 입력을 할 때 a와 \n를 버퍼에 저장해서 다음 sc.. 2020. 4. 30.
C언어 11장( switch문, 삼항연산자, 제어문, 조건문) ▣ 안녕하세요 ^^ 저번장에 숙제 다 해보셨나요? 조건문에 대해서 진행했습니다. 배운 내용을 활용하여 직접 조건문을 만들어서 관계 연산, 논리 연산을 사용해보는 숙제였습니다. 알고리즘 순서도까지 진행해보셨죠?? 모두 다 해보셔야 합니다. "아 쉽네... 그냥 넘어가야지"라는 생각은 버려주세요. 그렇게 해서 나중에 프로그램을 만들거나 게임을 만들 때 제대로 하는 사람을 거의 못 본거 같습니다.^^ 팩트입니다. 저도 그랬습니다.^^;; ▣ 코드 치는걸 두려워하지 마세요.!! ▣ 그럼 오늘은 저번장에 이어서 조건문 switch문을 진행하겠습니다. ▣ 먼저 이렇게 코딩을 저랑 똑같이 작성 하겠습니다. 변수에 이름은 여러분들이 원하시는 걸로 하셔도 됩니다. 저는 조금 게임 느낌이 나게 했습니다. ^^ if문과 똑.. 2020. 4. 28.
C언어 10장(제어문, 조건문, if문,else, else if, 알고리즘) ▣ 안녕하세요 ^^ 저번장에서 비트 연산자를 배웠습니다. 저번장 숙제는 해보셨나요?? 당연히 해보셨겠죠?? 꼭 숙제를 하셔야합니다. 안 하시고 읽기만 하시면 안 됩니다~~ 꼭이요~~ 오늘은 제어문에 있는 조건문에 대해서 배워보겠습니다. 비트 연산자랑 연관이 있는 부분이 있어서 저번장을 꼼꼼하게 공부하셨다면 오늘 내용에 많은 도움이 되실 겁니다. ▣ 자 그럼 제어문에 있는 조건문이 무엇일까요? 제어문은 쉽게 이야기하면 컴퓨터를 제어하는 코딩을 이야기하겠죠?? 그럼 조건문은 무엇일까요? 컴퓨터를 제어하는데 조건에 맞게 제어를 하는 걸 생각하시면 될꺼같습니다. 사전에서는 여러 의미로 이야기를 하지만 이 정도로만 이야기하겠습니다. ▣ 그럼 먼저 조건문에서 if문을 먼저 살펴보겠습니다. 나무 위키에서 if는 "만.. 2020. 4. 27.
C언어 9장(비트연산자) ▣ 안녕하세요. 저번장 숙제해보셨나요?? 저번장에서 랜덤에 관해서 배웠습니다. 조금 어려웠지만 그래도 꼭 해보셨을 거라 생각하고 넘어가겠습니다. ^^ 오늘은 비트 연산자에 대해 배워보겠습니다. 비트 연산자는 비트단위로 연산하는 연산자를 이야기합니다. ▣ 비트(bit)는 2진수를 저장하는 단위입니다. 우리가 자료형에 대해 공부하면서 비트에 대해 이야기 잠깐 했었죠? 컴퓨터에서 사용할 수 있는 최소에 단위라고 생각하시면 될꺼같습니다. 8bit가 모이면 1byte라고 우리는 배웠습니다. ▣ 우리는 쉽게 우리에 연산 방법으로 컴퓨터한테 명령을 주면 연산 결과가 쉽게 나오게 됩니다. 그런데 왜 비트 연산 자라는 걸 사용할까요? 이 부분을 조금 알고 가야 비트 연산자를 공부하는데 도움이 되실 거라 생각합니다. 나중.. 2020. 4. 24.
C언어 8장(랜덤, srand, rand, stdlib, time, 난수) 안녕하세요 ^^ 저번장에 드렸던 숙제 해보셨나요? 표준 입출력에 대해 많을걸 진행해서 조금 어려웠지만 그래도 열심히 해보셨을 거라 생각합니다. ^^ 오늘은 코딩에서 많이 사용하게 될 랜덤에 대해 한번 배워보도록 하겠습니다. 먼저 이론적인 부분을 한번 이야기해보겠습니다. 저도 이부분을 할 때 단순히 함수만 외우고 배웠더니 왜 이렇게 하지라는 의문이 생기더라고요. 이론적인 부분은 다 외우거나 암기하지 않아도 아 그래서 이렇게 사용하는구나 정도만 아셔도 될꺼같습니다. ▣ 먼저 난수(랜덤)가 무엇일까요? 나무 위키에서는 '임의의', '무작위의', '무선적인', '무계획적인', '닥치는 대로' 라는 뜻을 가진 영어단어 Random. '랜덤하다'라는 것은 보통 어떠한 사건이 규칙성이 보이지 않고 무작위로 발생한다는.. 2020. 4. 22.