분류 전체보기(1085)
-
Languague/C , C++ , C#
2021.02.22
[C언어/C++] 인라인(inline) 함수 사용법 & 예제
인라인 함수 사용법 inline 함수의원형 inline 함수의정의 함수 앞에 inline이라는 키워드를 위치시키는 것으로 인라인 함수를 선언, 생성 할 수 있습니다. 인라인 함수란? 인라인 함수는 정의한 코드들이 인라인 함수 호출 시 그 자리에 인라인 함수 코드 자체가 안으로 들어간다는 뜻입니다. 즉, 함수의 내용을 호출을 통해서 실행시키는 것이 아니라, 호출하는 코드 자체가 함수 내용의 코드가 됩니다. 예를 들어 아래의 예제처럼 인라인 함수를 사용했다고 해보겠습니다. #include inline void PrintHello() { cout
-
Languague/C , C++ , C#
2021.02.21
[C언어/C++] 화면 깜빡임 없애기 (더블 버퍼링)
콘솔로 개발을 진행할때 화면을 모두 지우고 재출력을 해야하는 상황에서 대개 while문 안에 system("cls") 명령어를 많이 사용하는데 콘솔의 내용을 지우고 다시 쓰고 하는 과정에서 정신산만한 깜빡임이 발생합니다. 이러한 문제가 생기는 원인은 싱글 버퍼링을 사용할 경우에 ( 화면 출력 -> 초기화 -> 화면 출력 ) 이 과정을 빠른속도로 무한 반복하는 도중 계속해서 공백이 노출되기 때문입니다. 이러한 현상을 없애주려면 그래픽스에서 많이 사용하는 더블 버퍼링이라는 기법을 사용하여야 합니다. 더블 버퍼링이란? 더블 버퍼링이란 싱글 버퍼링으로 화면을 그릴 경우 데이터를 저장하는 동안에는 다음 그림의 데이터를 전송할 수 없기 때문에 지우고 그리고 지우고를 반복 할 경우 필연적으로 발생하는 깜빡임 등의 상..
-
Languague/C , C++ , C#
2021.02.21
4
[C언어/C++] 캐릭터 움직이기 (GetAsyncKeyState 함수 사용법)
다중키 입력이 가능한 GetAsyncKeyState C언어 / C++에서 입력키의 정보를 알아오기 위해 _getch()를 종종 사용하고는 합니다. 하지만 _getch() 함수는 마지막에 누른 키 하나만을 입력받습니다. 그렇기에 좌,우,상,하 키를 동시에 입력받지 못하여 "대각선 이동" 모션을 할수가 없습니다. 게임을 개발하기 위해서는 _getch()함수보다는 GetAsyncKeyState()함수를 사용하도록 합시다. GetAsyncKeyState()함수는 입력을 멀티로 받을 수 있습니다. →키와 ↑키를 동시에 누른다면 오른쪽 위의 대각선 방향으로 이동을 할 수 있게됩니다. GetAsyncKeyState 사용법 SHORT GetAsyncKeyState(int vKey) 함수의 형태는 위와 같습니다. 인자값..
-
Languague/C , C++ , C#
2021.02.20
[C언어/C++] 화면의 커서 안보이게 숨기기 (+커서 두께 조절)
콘솔 개발을 할때 화면에 커서가 계속해서 깜빡깜빡 거리고 있다면 화면이 지저분한 느낌을 줍니다. 이번 포스팅에서는 화면의 커서의 굵기를 조절하거나 없애버리는 방법에 대해 포스팅 해보려고 합니다. 커서 안보이게 숨기기 #include #include void CursorView() { CONSOLE_CURSOR_INFO cursorInfo = { 0, }; cursorInfo.dwSize = 1; //커서 굵기 (1 ~ 100) cursorInfo.bVisible = FALSE; //커서 Visible TRUE(보임) FALSE(숨김) SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &cursorInfo); } int main() { CursorView();..
-
Languague/C , C++ , C#
2021.02.20
[C언어/C++] 원하는 좌표로 커서 이동하기 (SetConsoleCursorPosition)
콘솔 화면의 특정위치에 출력을 하기 위해 줄바꿈 printf("\n") 으로 이동한다면 화면이 밀릴 수 있어 화면이 깨질 위험이 있습니다. 그러므로 특정위치에 출력을 할때는 커서를 해당 좌표로 이동시킨 뒤 확실하게 출력하는 방법을 써야합니다. SetConsoleCursorPosition 함수를 통해 커서 이동 void gotoxy(int x, int y){ //x, y 좌표 설정 COORD pos={x,y}; //커서 이동 SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), pos); } windowswindows.h 헤더에 존재하는 SetConsoleCursorPosition 으로 좌표를 이동시킬 수 있습니다. 대부분 위와 같이 gotoxy라는 함수를..
-
Languague/C , C++ , C#
2021.02.19
[C언어] 파일 입출력 (txt 파일 쓰기, 읽기)
파일을 입출력할 때는 먼저 파일 스트림을 생성해야 합니다. 그리고 이 파일 스트림을 생성하려면 파일 포인터가 필요합니다. 파일 포인터는 파일에 접근하는 데 사용되는 FILE 구조체 포인터를 말합니다. 즉, 파일 스트림의 실체가 FILE 구조체 포인터입니다. 이처럼 파일 스트림(FILE 구조체 포인터)을 생성하고 파일을 fopen() 함수를 활용하여 연 뒤 여러 가지 파일 입출력 함수를 이용해서 입출력 작업을 할 수 있습니다. 파일 입출력이 끝난 후에는 파일 포인터를 fclose() 함수를 활용해서 닫아주면 됩니다. 파일 입출력 과정 1. 파일 스트림을 생성한다.(파일 포인터 생성) 2. 파일을 연다. fopen()함수 사용 3. 파일 입출력을 수행한다. 4. 파일을 닫는다. fclose()함수 사용 TX..
-
ETC.
2021.02.19
[수학] 길이의 단위 종류 + 변환 사이트
길이의 단위가 워낙 많아 단위를 외우기가 힘들어 포스팅 기록으로 남겨놓습니다. 가장 많이 사용하는 길이 단위 밀리미터(millimeter) : 국제단위계의 길이 단위로 1미터의 1,000분의 1에 해당하는 길이 단위입니다. 센티미터(centimeter) : CGS 단위계의 기본 단위로 1미터의 100분의 1에 해당하는 길이 단위입니다. 미터(meter) : 길이나 거리의 국제단위로 진공에서 빛이 299,792,458분의 1초 동안 진행한 거리로 정의되어 있습니다. 기이러한 정의는 최근에 측정 기술이 길이와 단위를 매우 높은 정확도로 재현할 수 있게 되면서 제안된 것으로, 시간의 경우에는 1013의 정확도로 재현할 수 있습니다. 킬로미터(kilometer) : 미터법에서 길이의 단위로 1,000미터와 같습..
-
ETC.
2021.02.18
[수학] 초 단위 종류 (극 미세 시간) + 변환 사이트
초에도 단위가 있습니다. 밀리초, 마이크로초, 나노초, 피코초, 펨토초, 아토초가 그 단위들입니다. 흔히 미세한 시간의 단위들을 극 미세시간이라고 하며 밀리초(1000분의 1), 마이크로(100만분의 1), 나노(10억분의 1), 피코(1조분의 1), 펨토(1,000조분의 1), 아토(100경분의 1)로 극미세 세계의 단위로까지 시간을 나눌 수 있습니다. 너무나도 미세한 단위들이라 숫자들이 너무 커 외우기가 너무 힘들어 이렇게 포스팅 기록으로 남겨놓습니다. 밀리초(millisecond) 밀리초 (millisecond)는 시간의 단위로 1,000분의 1초. 물리나 공학 분야에서는 통상 msec, 또는 ㎳라고 쓰입니다. 컴퓨터 내부의 논리 회로(logic circuit) 등은 상당히 고속으로 작동하지만, 보..
-
Languague/C , C++ , C#
2021.02.18
[C++] 나노초(ns)단위 시간 측정 chrono 함수 사용법 & 예제
이전 포스팅에서 컴퓨터에서 정밀한 시간 측정방법과 C언어 / C++에서 측정된 시간을 clock, getTickcount, timeGetTime함수를 통해 사용할 수 있는 방법을 알아보았습니다. 하지만 이 함수들은 전부 밀리초까지만 측정이 가능하여 그 보다 더 정밀하게는 측정이 불가능하다는 단점이 있었습니다. 이러한 단점을 보완하고자 C++ 11부터 chrono 함수가 새롭게 추가되어 나노초까지 측정할 수 있게 되었습니다. 측정방식은 CPU의 클럭 기준 (3G CPU면 300만 분의 1)이라고 합니다. [수학] 초 단위 종류 (극 미세 시간) + 변환 사이트 나노초 단위 측정이 필요한가? 사실 나노초 단위의 측정이 필요한지는 의문입니다. 기존의 밀리초 단위의 계측만으로도 충분하다는 생각때문입니다. 프로그..
-
Languague/C , C++ , C#
2021.02.17
[C언어/C++] 타이머 만들기 (스톱워치)
이전 포스팅에서 C언어 / C++에서 정밀한 시간 측정하는 방법인 clock, getTickcount, timeGetTime 함수들에 대해서 알아보았습니다. 코딩을 하다보면 은근히 경과시간을 구해야할 경우가 많습니다. 이 함수들을 활용해서 경과시간을 측정하는 타이머도 만들 수 있습니다. 정밀한 시간 측정 방법이 궁금하시다면 아래 글을 참고해주세요. [C언어/C++] 정밀한 시간 측정 (clock, getTickcount, timeGetTime) 함수의 차이와 사용법 C언어 / C++ 타이머(스톱워치) 만들기 #include #include #include int main() { clock_t start = clock(); for (;;) { clock_t end = clock(); double time ..
-
Languague/C , C++ , C# 2021.02.22[C언어/C++] 인라인(inline) 함수 사용법 & 예제 인라인 함수 사용법 inline 함수의원형 inline 함수의정의 함수 앞에 inline이라는 키워드를 위치시키는 것으로 인라인 함수를 선언, 생성 할 수 있습니다. 인라인 함수란? 인라인 함수는 정의한 코드들이 인라인 함수 호출 시 그 자리에 인라인 함수 코드 자체가 안으로 들어간다는 뜻입니다. 즉, 함수의 내용을 호출을 통해서 실행시키는 것이 아니라, 호출하는 코드 자체가 함수 내용의 코드가 됩니다. 예를 들어 아래의 예제처럼 인라인 함수를 사용했다고 해보겠습니다. #include inline void PrintHello() { cout
-
Languague/C , C++ , C# 2021.02.21[C언어/C++] 화면 깜빡임 없애기 (더블 버퍼링) 콘솔로 개발을 진행할때 화면을 모두 지우고 재출력을 해야하는 상황에서 대개 while문 안에 system("cls") 명령어를 많이 사용하는데 콘솔의 내용을 지우고 다시 쓰고 하는 과정에서 정신산만한 깜빡임이 발생합니다. 이러한 문제가 생기는 원인은 싱글 버퍼링을 사용할 경우에 ( 화면 출력 -> 초기화 -> 화면 출력 ) 이 과정을 빠른속도로 무한 반복하는 도중 계속해서 공백이 노출되기 때문입니다. 이러한 현상을 없애주려면 그래픽스에서 많이 사용하는 더블 버퍼링이라는 기법을 사용하여야 합니다. 더블 버퍼링이란? 더블 버퍼링이란 싱글 버퍼링으로 화면을 그릴 경우 데이터를 저장하는 동안에는 다음 그림의 데이터를 전송할 수 없기 때문에 지우고 그리고 지우고를 반복 할 경우 필연적으로 발생하는 깜빡임 등의 상..
-
Languague/C , C++ , C# 2021.02.21 4[C언어/C++] 캐릭터 움직이기 (GetAsyncKeyState 함수 사용법) 다중키 입력이 가능한 GetAsyncKeyState C언어 / C++에서 입력키의 정보를 알아오기 위해 _getch()를 종종 사용하고는 합니다. 하지만 _getch() 함수는 마지막에 누른 키 하나만을 입력받습니다. 그렇기에 좌,우,상,하 키를 동시에 입력받지 못하여 "대각선 이동" 모션을 할수가 없습니다. 게임을 개발하기 위해서는 _getch()함수보다는 GetAsyncKeyState()함수를 사용하도록 합시다. GetAsyncKeyState()함수는 입력을 멀티로 받을 수 있습니다. →키와 ↑키를 동시에 누른다면 오른쪽 위의 대각선 방향으로 이동을 할 수 있게됩니다. GetAsyncKeyState 사용법 SHORT GetAsyncKeyState(int vKey) 함수의 형태는 위와 같습니다. 인자값..
-
Languague/C , C++ , C# 2021.02.20[C언어/C++] 화면의 커서 안보이게 숨기기 (+커서 두께 조절) 콘솔 개발을 할때 화면에 커서가 계속해서 깜빡깜빡 거리고 있다면 화면이 지저분한 느낌을 줍니다. 이번 포스팅에서는 화면의 커서의 굵기를 조절하거나 없애버리는 방법에 대해 포스팅 해보려고 합니다. 커서 안보이게 숨기기 #include #include void CursorView() { CONSOLE_CURSOR_INFO cursorInfo = { 0, }; cursorInfo.dwSize = 1; //커서 굵기 (1 ~ 100) cursorInfo.bVisible = FALSE; //커서 Visible TRUE(보임) FALSE(숨김) SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &cursorInfo); } int main() { CursorView();..
-
Languague/C , C++ , C# 2021.02.20[C언어/C++] 원하는 좌표로 커서 이동하기 (SetConsoleCursorPosition) 콘솔 화면의 특정위치에 출력을 하기 위해 줄바꿈 printf("\n") 으로 이동한다면 화면이 밀릴 수 있어 화면이 깨질 위험이 있습니다. 그러므로 특정위치에 출력을 할때는 커서를 해당 좌표로 이동시킨 뒤 확실하게 출력하는 방법을 써야합니다. SetConsoleCursorPosition 함수를 통해 커서 이동 void gotoxy(int x, int y){ //x, y 좌표 설정 COORD pos={x,y}; //커서 이동 SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), pos); } windowswindows.h 헤더에 존재하는 SetConsoleCursorPosition 으로 좌표를 이동시킬 수 있습니다. 대부분 위와 같이 gotoxy라는 함수를..
-
Languague/C , C++ , C# 2021.02.19[C언어] 파일 입출력 (txt 파일 쓰기, 읽기) 파일을 입출력할 때는 먼저 파일 스트림을 생성해야 합니다. 그리고 이 파일 스트림을 생성하려면 파일 포인터가 필요합니다. 파일 포인터는 파일에 접근하는 데 사용되는 FILE 구조체 포인터를 말합니다. 즉, 파일 스트림의 실체가 FILE 구조체 포인터입니다. 이처럼 파일 스트림(FILE 구조체 포인터)을 생성하고 파일을 fopen() 함수를 활용하여 연 뒤 여러 가지 파일 입출력 함수를 이용해서 입출력 작업을 할 수 있습니다. 파일 입출력이 끝난 후에는 파일 포인터를 fclose() 함수를 활용해서 닫아주면 됩니다. 파일 입출력 과정 1. 파일 스트림을 생성한다.(파일 포인터 생성) 2. 파일을 연다. fopen()함수 사용 3. 파일 입출력을 수행한다. 4. 파일을 닫는다. fclose()함수 사용 TX..
-
ETC. 2021.02.19[수학] 길이의 단위 종류 + 변환 사이트 길이의 단위가 워낙 많아 단위를 외우기가 힘들어 포스팅 기록으로 남겨놓습니다. 가장 많이 사용하는 길이 단위 밀리미터(millimeter) : 국제단위계의 길이 단위로 1미터의 1,000분의 1에 해당하는 길이 단위입니다. 센티미터(centimeter) : CGS 단위계의 기본 단위로 1미터의 100분의 1에 해당하는 길이 단위입니다. 미터(meter) : 길이나 거리의 국제단위로 진공에서 빛이 299,792,458분의 1초 동안 진행한 거리로 정의되어 있습니다. 기이러한 정의는 최근에 측정 기술이 길이와 단위를 매우 높은 정확도로 재현할 수 있게 되면서 제안된 것으로, 시간의 경우에는 1013의 정확도로 재현할 수 있습니다. 킬로미터(kilometer) : 미터법에서 길이의 단위로 1,000미터와 같습..
-
ETC. 2021.02.18[수학] 초 단위 종류 (극 미세 시간) + 변환 사이트 초에도 단위가 있습니다. 밀리초, 마이크로초, 나노초, 피코초, 펨토초, 아토초가 그 단위들입니다. 흔히 미세한 시간의 단위들을 극 미세시간이라고 하며 밀리초(1000분의 1), 마이크로(100만분의 1), 나노(10억분의 1), 피코(1조분의 1), 펨토(1,000조분의 1), 아토(100경분의 1)로 극미세 세계의 단위로까지 시간을 나눌 수 있습니다. 너무나도 미세한 단위들이라 숫자들이 너무 커 외우기가 너무 힘들어 이렇게 포스팅 기록으로 남겨놓습니다. 밀리초(millisecond) 밀리초 (millisecond)는 시간의 단위로 1,000분의 1초. 물리나 공학 분야에서는 통상 msec, 또는 ㎳라고 쓰입니다. 컴퓨터 내부의 논리 회로(logic circuit) 등은 상당히 고속으로 작동하지만, 보..
-
Languague/C , C++ , C# 2021.02.18[C++] 나노초(ns)단위 시간 측정 chrono 함수 사용법 & 예제 이전 포스팅에서 컴퓨터에서 정밀한 시간 측정방법과 C언어 / C++에서 측정된 시간을 clock, getTickcount, timeGetTime함수를 통해 사용할 수 있는 방법을 알아보았습니다. 하지만 이 함수들은 전부 밀리초까지만 측정이 가능하여 그 보다 더 정밀하게는 측정이 불가능하다는 단점이 있었습니다. 이러한 단점을 보완하고자 C++ 11부터 chrono 함수가 새롭게 추가되어 나노초까지 측정할 수 있게 되었습니다. 측정방식은 CPU의 클럭 기준 (3G CPU면 300만 분의 1)이라고 합니다. [수학] 초 단위 종류 (극 미세 시간) + 변환 사이트 나노초 단위 측정이 필요한가? 사실 나노초 단위의 측정이 필요한지는 의문입니다. 기존의 밀리초 단위의 계측만으로도 충분하다는 생각때문입니다. 프로그..
-
Languague/C , C++ , C# 2021.02.17[C언어/C++] 타이머 만들기 (스톱워치) 이전 포스팅에서 C언어 / C++에서 정밀한 시간 측정하는 방법인 clock, getTickcount, timeGetTime 함수들에 대해서 알아보았습니다. 코딩을 하다보면 은근히 경과시간을 구해야할 경우가 많습니다. 이 함수들을 활용해서 경과시간을 측정하는 타이머도 만들 수 있습니다. 정밀한 시간 측정 방법이 궁금하시다면 아래 글을 참고해주세요. [C언어/C++] 정밀한 시간 측정 (clock, getTickcount, timeGetTime) 함수의 차이와 사용법 C언어 / C++ 타이머(스톱워치) 만들기 #include #include #include int main() { clock_t start = clock(); for (;;) { clock_t end = clock(); double time ..