언어 13

[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++] 파일 포인터를 fseek 함수로 이해하기(fseek function example)

안녕하세요 JollyTree(•̀ᴗ•́)و입니다. fseek() 함수는 파일 입출력에서 정말 유용한 함수로 사용됩니다. 인터넷 자료를 찾아보니, "Reposition stream position indicator"라고 되어 있네요. 파일 스트림의 위치를 가리키는 일명 지시자(indicator)를 재배치 할 수 있다 정도로 저는 이해하고 있는데요. 오래 기억하기 위해 예제 코드를 작성해 보았습니다. 아래 예제는 fseek()의 3번째 파라미터인 SEEK_SET, SEEK_END, SEEK_CUR의 사용을 for 문을 예시로 보여줍니다. 예제(fseek Example): 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++] 코드 내 에서 Hex Editor 같이 바이너리 출력하기(Binary output like Hex Editor in code)

안녕하세요 JollyTree (•̀ᴗ•́)و 입니다. 대부분의 워드, 멀티미디어, 압축 등의 프로그램들은 동영상, 압축, 그림 등 바이너리 파일을 대부분 사용하며 코딩을 하다보면 바이너리 파일을 읽고 써야 할때가 자주 발생합니다. 010Editor, Ultra Editor, Hex Editor, Hxd 등은 바이너리 파일을 아주 보기 쉽게 16진수 Hex 코드로 보여줍니다. 그리고 사용자 설정에 맞게 16바이트, 32바이트 등으로 정렬을 해서 편의를 제공하기도 합니다. 텍스트 데이터는 디버거나 코드상에서 printf, fprintf, puts 등의 함수로 출력하여 바로 확인이 가능하지만, 내가 짠 프로그램이 제대로 바이너리 파일을 읽고 썼는지, 소켓(Socket)으로 송·수신은 제대로 되었는지 등을 코드..

[C/C++] 시간 간격 계산하기(calculate the time interval : scanf, strncpy, atoi functions

[C/C++] 시간 간격 계산하기(calculate the time interval : scanf, strncpy, atoi functions examples) 안녕하세요 JollyTree(•̀ᴗ•́)و입니다. 오늘은 입력한 두 시간 사이의 간격을 계산하는 프로그램을 작성해 보려고 합니다. 입력과 출력은 다음과 같습니다 [입력 & 출력] 첫 번째 줄에 시작 시간을 입력하고, 두 번째 줄에 종료 시간을 입력합니다. 입력은 hhmmss(175102)형태이며, 만약 175102를 입력했다면 이는 17시51분02초를 나타냅니다. 당연히 종료시간은 시작 시간보다 이후이어야 합니다. 입력 예시) 102153 211523 출력예시) 10:53:30 예제(Example): 1 2 3 4 5 6 7 8 9 10 11 1..

[C/C++] Visual Studio(VC++)에서 pthread 사용하기(POSIX Threads Programming : pthread_c

[C/C++] Visual Studio(VC++)에서 pthread 사용하기(POSIX Threads Programming : pthread_create, pthread_join functions examples) 안녕하세요 JollyTree(•̀ᴗ•́)و입니다.오늘은 pthread(POSIX Thread) 라이브러리를 사용하는 예제를 포스팅하고자 합니다. 쓰레드를 생성, 이용하는 방법은 여러가지 방법이 있는데 그 중 한가지 방법이 pthread를 이용한 방법입니다. 다음은 pthread 사용 예제로 3개의 쓰레드(Thread)를 생성입니다. 쓰레드 함수(thread_func)에서 프로세스 ID와 쓰레드 ID를 구하여 출력합니다. 예제(Example): 1234567891011121314151617181..

[C/C++] 바이너리 파일 쓰고 읽기(binary file write & read : fopen(), fwrite(), fread(), fcl

[C/C++] 바이너리 파일 쓰고 읽기(binary file write & read : fopen(), fwrite(), fread(), fclose() functions example) 안녕하세요 JollyTree (•̀ᴗ•́)و 입니다. 우리가 사용하는 대부분의 프로그램들은 HWP, PPTX, JPG, DOCX, GIF 등의 바이너리 파일을 사용합니다. 이런 파일들은 저마다의 복잡한 포맷을 가지고 있는데요. 아래 예제 코드는 단순한 바이너리 파일을 쓰고 읽는 방법에 대한 예제입니다. 바이너리 파일을 쓰는 함수인 write_file()과 바이너리 파일을 읽는 함수 read_file()로 구성되어 있으니 쉽게 보실 수 있을 것입니다. 예제(Example):123456789101112131415161718..

[C/C++] 동적으로 메모리 할당 하기(dynamic memory allocation : malloc(), calloc(), free() fu

[C/C++] 동적으로 메모리 할당 하기(dynamic memory allocation : malloc(), calloc(), free() functions example) 안녕하세요 JollyTree입니다. 코딩을 하다보면 char buf[100];과 같이 버퍼의 크기를 미리 할당할 수 있지만, 동적으로 메모리를 할당했다가 해제해야 하는 상황이 아주 많이 발생합니다. 이 때 사용할 수 있는 대표적인 함수가 malloc(), calloc()함수입니다. 두 함수는 할당한 메모리를 초기화하느냐 그렇지 않느냐의 차이가 있으니, 참고하여 사용하면 좋을 것 같습니다. malloc(), calloc()함수 호출 후의 메모리 상태 비교 buf1 = (char*)malloc(sizeof(char) * 50); //코드..

[C/C++] 특정 문자를 구분자로 하여 문자열 자르기(split a string with delimiter : strtok function e

[C/C++] 특정 문자를 구분자로 하여 문자열 자르기(split a string with delimiter : strtok function example) 안녕하세요 JollyTree입니다. C언어로 코딩을 하다보면 문자열 복사 부터 다양한 형태의 문자열을 다루게 됩니다. 대표적인 것이 "num1;num2;num3;num4;num5;" 형태의 문자열에서 세미콜론(';')를 제외한 num1, num2, num3, num4, num5의 문자열만을 자르고자 할 경우 strtok()함수를 사용하면 쉽게 문자열을 자를 수 있습니다. 아래 예제는 for()문과 while()문을 이용하여 문자열을 자르는 방법을 보여줍니다. 예제(Example)123456789101112131415161718192021222324#..

[C/C++] 동적으로 파일 사이즈(크기) 구하고 메모리 할당 후 파일 읽기(dynamically get the file size, alloca

[C/C++] 동적으로 파일크기 구하고 메모리 할당 후 파일 읽기(dynamically get the file size, allocate memory and read the file : stat, calloc, free functions example) 안녕하세요 JollyTree입니다. 컴퓨터에 저장되어 있는 파일의 크기는 다양합니다. 이런 다양한 크기의 파일을 읽어 메모리에 저장하기 위해서는 파일 크기보다 큰 크기의 버퍼를 할당하면 됩니다. 하지만, 프로그램 입장에서는 이를 예측하기는 어려우므로, stat 함수를 이용하여 읽으려는 파일의 크기를 구한 후 파일 크기에 맞는 크기의 메모리를 동적으로 할당하면 불필요하게 낭비되는 메모리를 최소화 할 수 있게 됩니다. 또한 stat 함수는 파일 크기(tota..

[C/C++] 전체 경로에서 파일명 추출하기(extract only the file name from the entire path : strrc

[C/C++] 전체 경로에서 파일명 추출하기(extract only the file name from the entire path : strrchr, strcpy functions example) 안녕하세요 JollyTree 입니다.코딩하다가 전체경로 문자열에서 파일명을 추출할 필요가 있을 때가 있습니다. 여러 방법 중 오늘은 strchr, strcpy 함수를 이용하여 아래와 같이 전체 경로에서 파일명만을 추출하는 방법을 포스팅합니다. - 전체 경로 "c:\\test\\tistory.com\\codes.txt" 에서 "codes.txt"만 추출 예제(Example)12345678910111213141516171819202122232425262728293031#pragma warning(disable: 4..