Coding & Programming/C, C++ 40

[C언어/C++] 스레드 이용하여 파일 복사 하기(1/3) - CopyFile 함수 + _beginthreadex 함수 예제

스레드 이용하여 파일 복사 하기(1/3) - CopyFile 함수 + _beginthreadex 함수 예제(CopyFile, _beginthreadex functions example) 안녕하세요 JollyTree입니다 (•̀ᴗ•́)و 윈도우 환경에서 파일을 복사하는 방법은 여러 가지가 있습니다. 대표적인 방법은 CopyFile API를 사용하는 방법, FILE 스트림 계열의 fopen, fwrite, fread 등의 함수를 이용하는 방법, 저수준 파일 입출력 함수인 open, read, write 등의 함수를 이용하는 방법이 있습니다. 🔗 파일 복사 방법 종류 ① CopyFile 함수 이용 ② 파일스트림(FILE 구조체) 함수 이용 ③ 저수준 파일 입출력 함수 이용 먼저 Windows에서 제공하는 Co..

[C언어/C++] scanf 정수 3개(N개) 입력 받기 + 총합, 평균, 작은수, 큰수 구하기(scanf reading N numbers, Calculate the sum and average of N numbers)

[C언어/C++] scanf 정수 3개(N개) 입력 받기 + 총합, 평균, 작은수, 큰수 구하기(scanf reading N numbers, Calculate the sum and average of N numbers) 안녕하세요 JollyTree입니다 (•̀ᴗ•́)و 간단한 문법이지만 간혹 찾아보게 되는 부분이라 정리합니다. ■ scanf 정수 3개 입력 받고 총합, 평균, 작은수, 큰수 구하기 정수 입력시 순차적으로 줄바꿈없이 입력하도록 되어 있습니다. 입력 예) 정수 3개를 입력하세요:(예: 100 200 300) 1234 4567 4321 scanf 예제(Example Code): 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..

[C언어/C++] memcmp() 함수 - 문자열/메모리 데이터 비교 하기 예제 + strcmp(), strncmp() 함수와의 차이점

[C언어/C++] memcmp() 함수 - 문자열/메모리 데이터 비교 하기 예제 + strcmp(), strncmp() 함수와의 차이점 안녕하세요 JollyTree입니다 (•̀ᴗ•́)و memcmp() 함수는 strncmp() 함수와 사용방법이 비슷합니다. 차이점이 있다면 strncmp() 함수는 NULL 문자('\0')가 문자열 내에 존재하면 NULL 문자 전까지의 문자열을 비교하지만 memcmp() 함수는 NULL 문자뿐만 아니라 바이너리 문자들을 포함하여 메모리에 있는 데이터를 비교할 수 있습니다. 따라서 바이너리 문자가 포함된 데이터를 비교하기 위해서는 memcmp() 함수를 이용하는 것이 좋습니다. int memcmp( const void *buffer1, const void *buffer2, ..

[C언어/C++] strcmp(), strncmp() 함수 - ID/Password 문자열 비교 하기 예제

[C언어/C++] strcmp(), strncmp() 함수 예제 - ID/Password 문자열 비교 하기 안녕하세요 JollyTree입니다 (•̀ᴗ•́)و C언어에서 문자열은 일반적인 비교 연산자(==)로는 비교할 수 없으며 strcmp, strncmp와 같은 함수를 이용하여 문자열 이 같은지 비교를 해야 합니다. strcmp 함수는 매개변수 2개에 저장되어 있는 모든 문자열을 비교하고 strncmp 함수는 세 번째 매개변수 size_t count에 지정된 크기만큼 문자열을 비교합니다. int strcmp( const char *string1, const char *string2 ); int strncmp( const char *string1, const char *string2, size_t coun..

[C언어/C++] 문자열 길이 구하기 : strlen() 함수 ID/Password 길이 체크 예제

[C언어/C++] 문자열 길이 구하기 : strlen() 함수 ID/Password 길이 체크 예제 안녕하세요 JollyTree입니다 (•̀ᴗ•́)و strlen() 함수는 문자열의 길이를 구하는 함수입니다. NULL('\0')이포함된 문자열에서 NULL 문자를 제외한 문자열의 길이를 반환합니다. 예제는 입력한 문자열의 길이를 구하는 코드와 입력한 ID/Password가 하드 코딩된 ID/Password의 길이와 문자열이 동일한지를 비교 검사하는 코드로 구성되어 있습니다. strlen() 함수의 자세한 설명은 예제를 참고하세요. ▣ strlen() 함수 예제(Example Code): 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 2..

[C언어/C++] printf, scanf 함수 변수 입출력 예제(정수, 실수, 줄바꿈 등 포맷 지정자:format specifiers)

[C언어/C++] printf, scanf 함수 변수 입출력 예제(정수, 실수, 줄바꿈 등 포맷 지정자:format specifiers) 안녕하세요 JollyTree입니다 (•̀ᴗ•́)و printf, scanf 함수는 C/C++ 언어에서 표준 입력과 출력을 지원하는 함수로 콘솔 형태의 프로그램에서 가장 많이 사용되는 함수입니다. 표준 입출력 헤더인 stdio.h에 정의된 가장 기본적인 함수이며 자료형에 따라 %d, %f, %u 등 포맷 지정자(format specifier)를 사용해 주어야 합니다. 포맷 지정자는 종류가 많아 자주 사용하는 지정자는 익숙하지만 그렇지 않은 것은 매번 자료를 찾아봐야 하는 번거로움이 있습니다. 알아두면 편리한 포맷 지정자를 예제와 함께 핵심 내용 위주로 정리하였습니다. ■..

[C/C++] 라이브러리 함수(isalnum, isalpha, isupper, islower, isdigit, isspace)를 이용하여 문자열 내 알파벳, 대소문자, 공백, 숫자 식별(분류)하기 + 대소문자 변환(toupper, tolower)하기

[C/C++] 라이브러리 함수(isalnum, isalpha, isupper, islower, isdigit, isspace)를 이용하여 문자열 내 알파벳, 숫자, 영어 대소문자, 공백 식별하기 + 대소문자 변환(toupper, tolower)하기 안녕하세요 JollyTree입니다 (•̀ᴗ•́)و 지난 번에는 별도의 C/C++ 라이브러리를 사용하지 않고 ASCII 코드 테이블만을 이용하여 사용자가 입력한 문자열 내에서 알파벳 대소문자, 공백, 숫자 등을 식별하여 분류하였습니다. ※ 참고: [C/C++] ASCII 값을 이용하여 문자열 내 알파벳, 대소문자, 공백, 숫자 식별(분류)하기 + 대소문자 변환하기 지난 번 자료에서 조금 더 고민해 보면 m_isdigit(), m_isalpha(), m_isaln..

[C/C++] ASCII 코드값을 이용하여 문자열 내 알파벳, 대소문자, 공백, 숫자 식별(분류)하기 + 대소문자 변환하기

[C/C++] ASCII 값을 이용하여 문자열 내 알파벳, 대소문자, 공백, 숫자 식별(분류)하기 + 대소문자 변환하기 안녕하세요 JollyTree입니다 (•̀ᴗ•́)و C/C++에서 char 자료형의 문자 변수는 0에서 127 사이의 정수 값을 저장할 수 있습니다. 이는 미국 ANSI(American Standard Code for Information Interchange)에서 표준화한 정보교환용 7비트 부호체계인 ASCII 코드에 해당되며 영문 키보드로 입력할 수있는 모든 기호들이 할당되어 있어 있습니다. ※ ASCII 코드에 대한 자세한 설명은 위키백과를 참고해 주세요. 아래 표와 같이 ASCII 코드값에는 십진수(Dec.)기준으로 숫자(0~9)가 48번에서 57번에 할당되어 있고, 알파벳 대문자..

[C/C++] C언어 수학 함수(round, ceil, floor) 직접 구현 하기(예제포함)

안녕하세요 JollyTree입니다 (•̀ᴗ•́)و 지난번에는 abs(), fabs(), sqrt(), pow() 수학 함수를 직접 구현하여 C/C++ 라이브러리 함수와 비교하는 자료를 포스팅하였습니다. 이번에는 추가적으로 다음 3개 수학 함수들을 직접 구현하여 컴파일러가 제공하는 라이브러리 함수와 비교하고자 합니다. o 반올림 값을 구하는 round() 함수 o 소수점 올림 값을 구하는 ceil() 함수 o 소수점 내림 값을 리턴하는 floor() 함수 구현한 사용자 함수가 올바른 결과 값이 구해지는지의 검증은 지난 번과 마찬가지로 동일한 실험 데이터를 가지고 C/C++ 라이브러리 함수와 비교하였습니다. double r[] = { 3.2, 3.7, -3.2, -3.7, 5.1, -6.6 }; double..

[C/C++] C언어 수학 함수(pow, sqrt, abs, fabs) 직접 구현 하기(예제포함)

안녕하세요 JollyTree입니다 (•̀ᴗ•́)و C/C++ 언어는 기본적으로 많은 수학 관련 함수를 지원합니다. 수학 과련 함수들을 사용하기 위해서는 #include 를 소스코드에 추가하여 사용합니다. 이미 준비된 라이브러리 함수를 사용하면 아주 편리하지만 이런 라이브러리 함수들이 내부적으로 어떻게 구현되어 있을까?라는 호기심이 생깁니다. 그래서 C/C++ 언어가 제공하는 수학 함수 중에 비교적 많이 사용되는 함수를 컴파일러가 제공해 주는 라이브러리를 사용하지 않고 스터디 차원에서 직접 구현해 보았습니다. o 정수의 절대값을 계산하는 abs() 함수 o 실수의 절대값을 계산하는 fabs() 함수 o 제곱근을 계산하는 sqrt() 함수 o 거듭 제곱을 계산하는 pow() 함수 직접 구현한 사용자 정의 함..