본문 바로가기

2_ 바삭바삭 프로그래밍/C and C++17

C++ - boost 를 사용한 간단한 Thread 실행예제 오랜만에 쓰레드를 세팅하는데 많은 변동이 있었네요. 새로운 버전을 기준으로 다시 적습니다(2013. 8) ----------------------------------------------------------------------------------------------------- 아아- 콘솔 C 에서 스레드를 돌릴 수 있다니 정말 신나는 이야기 아닌가요? ㅋ 있다는 이야기는 들었지만 이상한 소문도 많고 세팅도 까다로운 것 같아. 사용하기는 왠지 조금 꺼려졌던 Boost.. 막상 써보니 Smart Point든 제공해주는 Array, 정규표현식 등. 유용한 도구들이 많은데 그 동안 왜 몰랐을까 하는 생각이 들더군요. 부스트라이브러리(http://www.boost.org)란? 부스트 라이브러리는 프로그.. 2012. 9. 4.
C++ - rand, srand(난수발생), sleep(지연) 콘솔 좌표이동, 색상변경함수(http://topnanis.tistory.com/173)와 함께 자주 사용됩니다. 다음은 0.1초마다 두 자릿수의 랜덤값을 출력하는 소스입니다. rand 혹은 rand 함수는 많은 헤더에 포함되어 있으나 기본은 입니다. #include //rand #include //time #include //sleep, rand//#include //rand using namespace std; int main(){srand(time(NULL));while(true){Sleep(100);//Milliseconds cout 2012. 5. 31.
C++ - 쉽게 설명한 링크드리스트(Linked list) 이야기 링크드리스트(연결리스트) 종결자가 되어봅시다. 저는 어찌어찌나 봐도 한 개도 이해가 안가던지 '딴 애들은 이걸 어떻게 이해하는 것인가, 나는 과연 이 진로를 계속 가야하나' 진지하게 고민했던 기억이 있답니다 우리가 배열로 리스트를 하나 만든다고 가정해 봅니다. 그것을 관리하기 위한 함수로 대략 이러한 코드가 하나 들어가게 될 것 입니다. void ArrayList::insertFirstNode(int data) //첫번째 노드에 데이터를 넣어주고 나머지는 한칸씩 밀려나가는 함수{if(!is_full()) //어딘가에 이런것도 하나 구현해 두겠죠. 배열이 다 찼다면 애당초 작업하지 않도록{for(int i=length-1; i>=0; i--) list[i+1] = list[i]; //자료가 지워지지 않도록.. 2012. 5. 30.
C++ - gotoxy(좌표이동), setcolor(색상변경) 콘솔 상에서 gotoxy는 좌표를 이동시켜 주는 함수입니다. setcolor는 글자와 백그라운드 색상을 변경 시켜주고요. 기본적으로 콘솔게임은 바로 이 좌표/ 색상함수, 화면지움, 반복문, 타이머(sleep) 를 활용하여 구현 할 수 있습니다. rand, srand(난수발생), sleep(지연) 관련 링크는 다음 링크를 참조하세요(http://topnanis.tistory.com/175) 맨날 찾아만 보다가 포스팅 하게 되었답니다 ㅎ 색상표가 있어요.. 0 이 검정이구, 10 이면 초록이군요. 이걸 코드에 적용시켜 보면.. #include // windows.h를 인클루드 시킵니다.#include using namespace std; void gotoxy(int x,int y){.. 2012. 5. 24.
C++ - 쉽게 설명한 포인터(point)와 레퍼런스(reference) 이야기 포인터를 배우다보면 누구나 몇 가지 알쏭달쏭한 점을 느끼게 되지요(point로 쓰고 포인터라고 읽는 점 부터가 이상해..-_-) 모든 코딩이 그렇지만 포인터는 특히 직접 컴파일을 하면서 이해하는 것이 가장 좋은 방법이 아닐까요. 그치만.. 나도 게을러서 이해하고 땡하는게 더 좋아요 :) 오랜만의 포스팅으로 C의 꽃, 포인터에 관한 내용을 정리 해두고 싶었답니다. 우선.. 포인트, 레퍼런스 사용의 장점에 대해 잠깐 생각 해 봅니다. 1. 직접적인 접근이 가능하다는 것에 있겠죠. 포인터를 이용한 주소 접근은 위험할 수 있지만 그만큼 강력한 컨트롤을 할 수 있습니다. 물건 깎을 때, 점원을 부르는 것 보다 주인을 부르는 편이 낫겠죠_ 2. 효율적이구요. 바탕화면 위에 파일을 끌어다 두는 것보다 [바로가기]들로.. 2012. 5. 22.
Visual C++ 2010 실행 시 콘솔창이 바로 닫혀 버릴때... 참고하세용~ Visual studio에서 가. 해당 프로젝터이름에서 마우스 오른쪽 클릭하여 을 선택나. -> -> 선택다. 에서 콘솔 (/SUBSYSTEM:CONSOLE) 을 설정 이후 프로그램 소스를 리빌드해서 Ctl + F5 key를 누르면 콘솔창에 결과가 뜨고 "계속하려면 아무 키나 누르세요..." 콘솔창이 표시됨 2012. 5. 21.
C - 콘솔에서 Box2D(물리엔진)를 쉽게 사용하는 방법! (VS2010 기준) 물리엔진이란 - 오브젝트를 대상으로 질량, 속도, 마찰, 유체저항 등의 수치를 이용하여 뉴턴역학 모델을 시뮬레이트 하는 프로그램을 통칭하며 자연계의 물리 현상을 프로그램 내에서 시뮬레이트 하는 프로그램 라이브러리입니다. 에이지 오브 엠파이어시리즈에선 3 부터 였죠. 물리엔진이 도입되면서 대포알 각도와 힘에 따라 사람이나 건물 파편이 늘 다르게 튕기는 모습이 연출되어 넋을 잃고 대포를 쏘던 기억이 나네요. 게임의 감초역할을 하는 물리엔진은 적소에 잘 쓴다면.. 빛이 반짝반짝 난답니다(생각보다는 활용도가 높진 않더라구요) 여기에서는 공개된 대표적인 물리엔진인 Erin Catto님의 Box2d로 설명하겠습니다. (참고로 저희 과제중에 블럭마스터(http://topnanis.tistory.com/91)가 이 라.. 2011. 12. 14.
C - 아스키코드(ASCII) 3종 세트! 평생 따라다니는 아스키코드.. 난 이때쯤 되면 다 외울줄 알았죠.. 몇년이 지나도록 65 ('A') 밖에 모름 ㅋㅋㅋ 아 부끄럽다 ㅋㅋ 아스키코드 [ American Standard Code for information interchange ] 1963년 미국표준협회(ASA)에 의해 결정되어 미국의 표준부호가 되었다. 미니컴퓨터나 개인용 컴퓨터(PC)와 같은 소형 컴퓨터를 중심으로 보급되어 현재 국제적으로 널리 사용되고 있다. 아스키는 128개의 가능한 문자조합을 제공하는 7비트(bit) 부호로, 처음 32개의 부호는 인쇄와 전송 제어용으로 사용된다. 보통 기억장치는 8비트(1바이트, 256조합)이고, 아스키는 단지 128개의 문자만 사용하기 때문에 나머지 비트는 패러티 비트나 특정문자로 사용된다. 일반.. 2011. 10. 5.
C - 문자를 숫자로(atoi), 숫자를 문자로(itoa) 아~ 맨날 아토인가 이토안가 까먹고.. 아토이의 'a'가 '알파벳'의 이니셜이네요. 이것도 포스팅해야지.. 우선 헤더는 를 필요로 합니다. 문자를 숫자로 바꿔주는 함수, 아토이 atoi (Alphabet TO Integer)는 쓰기 쉽죠 int atoi(const char *_Str); ex) char * a ="12345"; printf("%d \n",atoi(a)); 문자열로 인식되기 위해서는 정수를 문자열로 전환을 해야합니다. 이 때, 사용하는 함수가 itoa ( Integer TO Alphabet) 함수입니다. 헤더를 지정 한 뒤 다음과 같이 사용하면 되지요. char *itoa ( int value , char *str , int radix ); value 는 변환 시키고 싶은 숫자입니다. st.. 2011. 10. 5.
C - math.h 일부 (pow, sqrt, floor, ceil) 제곱을 사용할 때마다 입에 빙빙 돌아서 스크랩합니다. 간혹 올림, 내림 할일이 있으면 10나눈뒤 다시 10곱하는 방법을 썼는데.. 이게 다 함수로 있었군요 -_-;; 출처 : http://211.228.163.31/30stair/floor_ceil/floor_ceil.php#power 1. xy 구하기23 , 3 4 ...등의 거듭제곱 값은 pow 함수로 구할 수 있습니다.다음은 pow 관련 함수의 메뉴얼 입니다. pow , powf ,powl 함수를 사용하기 위해서는 math.h 를 포함시켜야 하고 함수의 원형(prototype)이 주어져 있습니다. 이 중 pow 함수의 원형을 설명하면 , pow 함수는 두 수를 인자로 받고 xy한 수를 구해서 돌아 옵니다. 인자로 주는 두 수는 double 형이어야 .. 2011. 9. 19.