C/C++ 26

[C언어/C++]32bit 정수(integer)에서 특정 비트(bit)값 추출(get), 설정(set), 반전(invert), 비트열(bit string) 출력하기

[C언어/C++]32bit 정수(integer)에서 특정 비트(bit)값 추출(get), 설정(set), 반전(invert), 비트열(bit string) 출력하기 안녕하세요 JollyTree입니다 (•̀ᴗ•́)و 일반적으로 32bit 컴퓨터 프로그램에서 int/unsigned int는 32bit(4바이트) 크기를 가집니다. int a = 10; 일때 a의 값 10은 10진수이며 16진수로 0xA, 그리고 이진 수로 00001010 라는 비트열의 이진수로 표현할 수 있습니다. 32bit 시스템이기 때문에 모든 비트열을 표현하면, 0000000 00000000 00000000 00001010 가 됩니다. 64bit의 경우 2배의 길이를 가지게 됩니다. 다음은 아래 예제에 포함된 4개의 정수형 변수입니다. ..

[C언어/C++] 파일 정리(청소) 프로그램(MCSweeper) : File Sweeper v 1.0-_getdrive, _findfirst, _findnext, _unlink functions example

[C언어/C++] 파일 정리(청소) 프로그램(MCSweeper) : File Sweeper v 1.0-getdrive, _findfirst, _findnext, _unlink functions example 안녕하세요 JollyTree입니다 (•̀ᴗ•́)و _findfirst, _findnext, _findclose 함수 사용법에 대해 스터디하던 중에 조금이라도 의미 있는 것을 만들어 보자는 생각에 아이디어를 더하여 C, D, E 등 드라이브 내 불필요한 파일들을 자동으로 삭제하는 간단한 프로그램을 만들어 보았습니다. 제목에서도 알 수 있듯이 컴퓨터 내에 있는 .$$$, .TMP, .BAK 등의 확장자를 가지는 파일들을 자동으로 정리해 주는 프로그램입니다. 소스코드에서 삭제 대상 확장자를 지정할 수 있습..

[C언어/C++] HDD, SSD 드라이브 목록 & 용량 구하기(_chdrive, GetDiskFreeSpaceEx functions example)

[C언어/C++] HDD, SSD 드라이브 목록 & 용량 구하기 : _chdrive, GetDiskFreeSpaceEx functions example) 안녕하세요 JollyTree입니다 (•̀ᴗ•́)و _chdrive(int drive) 함수는 현재의 드라이브를 변경하는 함수입니다. 파라미터인 int drive는 1에서부터 26까지의 정수로 1은 A 드라이브, 2는 B 드라이브, 3은 C 드라이브 등을 의미하며 정상적으로 드라이브가 변경되면 0을 리턴합니다. 아래 예제는 이런 _chdrive() 함수의 특성을 이용하여 컴퓨터에 장착된 HDD(Hard Disk Drive, 하드디스크), SSD(Solid-State Drive)에서 사용 가능한 드라이브 목록을 구합니다. 사용 가능한 드라이브들을 구해서 d..

[C언어/C++] 데이터 단위변환 : Bytes → Kilobyte(KB) → Megabyte(MB) → Terabyte(TB) - Converting bytes to human readable values(Bytes, KB, MB, GB, TB) in C

[C언어/C++] 데이터 단위변환 : Bytes → Kilobyte(KB) → Megabyte(MB) → Terabyte(TB) - Converting bytes to human readable values(Bytes, KB, MB, GB, TB) in C 안녕하세요 JollyTree입니다 (•̀ᴗ•́)و 바이트를 킬로바이트, 메가바이트, 테라바이트로 변환하는 예제입니다. 코드가 정상적으로 동작하는지 확인하기 위해 하드 코딩된 testBytes[] 배열을 선언하여 테스트 데이터를 구성하였습니다. 바이트 수를 직접 입력하여 변환된 결과를 확인 할 수도 있습니다. 큰 수의 바이트는 사람이 읽기 어려우므로 입력한 바이트의 크기에 따라 자동으로 KB, MB, GB, TB로 변환하여 보여주도록 하였습니다. 단위변..

[C언어/C++] 파일명에서 확장자만 추출하기-Extract file extension from filename(strrchr function example)

[C/C++] 파일명에서 확장자만 추출하기-Extract file extension from filename 안녕하세요 JollyTree입니다 (•̀ᴗ•́)و 컴퓨터에는 실행파일, 문서 파일, 이미지 파일, 음악파일 등에 따라 .exe, .pptx, .xlsx, .hwp, .jpg, .gif, mp3 등 다양한 형태의 확장자가 존재합니다. 이번 포스팅은 "maincodes.exe", "365일 생활 패턴 분석.hwp", "2020발표자료.pptx" 등과 같은 전체 파일명에서 마침표(.)로 구분되는 .exe, .pptx, .xlsx, .gif 등 확장자만을 추출하는 예제입니다. 🔗 파일 확장자 추출 예제(Example): 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19..

[C언어/C++] 윈도우 파일 시간(MAC Time) 직접 수정 하기-SystemTimeToFileTime, LocalFileTimeToFileTime, SetFileTime 함수 예제

[C언어/C++] 윈도우 파일 시간(MAC Time) 직접 수정 하기-SystemTimeToFileTime, LocalFileTimeToFileTime, SetFileTime 함수 예제 안녕하세요 JollyTree입니다 (•̀ᴗ•́)و 지난번에는 SetFileTime, GetFileTime 함수를 스터디하며 파일 간의 MAC Time을 복사하는 방법에 대해 포스팅하였습니다. 이번에는 파일의 MAC Time을 직접 지정한 날짜로 수정하는 방법에 대한 내용입니다. MAC Time 수정 시간(Modification Time), 접근시간(Access Time), 속성 변경 시간(metadata Change Time) 예제는 지정한 날짜로 파일의 MAC Time을 수정하기 위해 먼저 사용자로부터 년, 월, 일, ..

[C언어/C++] 파일 시간(MAC Time) 복사/수정하기-GetFileTime, SetFileTime 함수 예제

[C언어/C++] 파일 시간(MAC Time) 복사/수정하기-GetFileTime, SetFileTime 함수 예제 안녕하세요 JollyTree입니다 (•̀ᴗ•́)و 일반적으로 파일 시스템은 파일에 대한 MAC Time을 기록합니다. MAC Time은 파일의 수정 시간(Modification Time), 접근시간(Access Time), 속성 변경 시간(metadata Change Time)을 의미하며 윈도우 운영체제 환경에서는 탐색기의 속성(R) 메뉴를 통해 확인할 수 있습니다. 예제는 mainCodes.zip 파일의 MAC Time을 읽어서 jollytree.zip 파일에 그대로 복사하는 기능이 포함되어 있으며 MAC Time 은 GetFileTime, SetFileTime 함수에 의해 복사됩니다. ..

[C/C++] 정수(int)와 문자열(string) 상호 변환하기(itoa, atoi, sprintf, snprintf function examples)

안녕하세요 JollyTree(•̀ᴗ•́)و입니다. 정수와 문자열을 서로 변경하는 방법에 대해 정리하려고 합니다. 자료형 간의 변환은 코딩시 많이 사용되는 경우로 이번 자료에서는 itoa, atoi, sprintf 함수 사용 예제 위주로 설명하고 snprintf()를 사용한 응용 예제를 공유합니다. 인터넷에 함수 원형(Prototype)을 설명한 자료들은 많기에 예제위주로 설명을 하려합니다. 예제를 보고 편리한 방법을 사용하면 되겠습니다. 정수(int)와 문자열(string) 상호 변환 예제(Example) - itoa, atoi, sprintf, snprintf 함수 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29..

[C/C++, SFML] 사이먼 게임(Simon Game) 만들기(Build a Simon Game)

안녕하세요 JollyTree입니다 (•̀ᴗ•́)و 오늘 주제는 그동안 SFML 관련 자료를 포스팅한 기본윈도우 출력, 타이머 구현, 캐릭터 및 배경 이미지, 폰트 출력 등의 내용들을 일부 종합 정리하고 처음 연재 시작할 때 계획했던 사이먼 게임의 개발 과정을 소개하려고 합니다. 게임이라고 할 정도로 거창하진 않고요. 3월 24일날 처음 SFML에 대한 연재를 시작하면서 사이먼 게임을 말씀드린 내용이 있어 정리하고자 합니다. 사이먼 게임은 1978년 처음 세계에 알려진 이래 지금까지 판매되고 있는 정말 오랜된 게임으로 초창기 버전은 전자기기 형태로 출시되었다고 합니다. 70년대와 80년대는 대중 문화의 상징일 정도였다고 하니 정말 대단했던것 같습니다. 알고리즘 구현에 사용된 언어는 어셈블리어였으며 코드 대..

[C/C++, SFML] 10. 키보드 이벤트(Event) 및 상태(State) 처리하기

안녕하세요 JollyTree입니다 (•̀ᴗ•́)و sf::Keyboard 클래스는 눌린 키, 키눌림, 키 떼임 등의 키보드 상태에 대한 인터페이스를 제공합니다. Event::KeyPressed, Event::KeyReleased 이벤트를 이용하여 키의 눌림과 떼임 상태를 알 수 있으며 어떤 키가 눌렸는지 event.key.code의 값을 통해 눌린 키의 값을 확인할 수 있습니다. 예제는 상, 하, 좌, 우 방향키가 입력되면 이벤트를 입력받아 화면의 빨간색 사각형을 입력된 키 방향에 맞춰 -10, +10 만큼씩 움직입니다. 스페이스(Space) 키를 누를 경우 파란색 테두리의 작은 사각형에 move() 메소드를 이용하여 소소한 애니메이션 효과를 주고 애니메이션 효과가 끝나면 빨간색 사각형의 중앙으로 작은 ..