[태그:] <span>C++</span>

[태그:] C++

[C++] sscanf_s, _stscanf_s

함수를 까먹어서 기록하기 위한 글입니다.어떤 문자열이 있을 때 정해진 포맷이 있다면 그 포맷에서 데이터를 추출하는 경우가 있습니다. C++인 경우엔 regex를 사용하면 정확한 문자열 검증이 가능하지만, 간단하게 사용할 수 있는 sscanf_s 함수도 제공합니다.(MFC에서는 _stscanf_s사용) 함수가 성공적으로 …

[C++] 가상 함수(Virtual Function)

가상 함수는 객체 지향 프로그래밍에서, 상속 받는 클래스 내에서 오버라이딩 될 수 있는 함수입니다.virtual 키워드를 붙여 사용가능합니다.virtual을 붙이면 파생 클래스에서 재정의할 것으로 보이는 멤버 함수를 의미합니다. 사용 방법은 아래와 같습니다. 우선 아래 코드를 보며 virtual이 …

[C++] 자료형과 범위 – sizeof

C++에서 사용하는 데이터 형식의 종류(자료형)와 그 값의 범위는 아래와 같습니다. 해당 값은 아래 코드와 같이 sizeof로 확인이 가능합니다. 일반적으로 데이터를 표현할 때 데이터 비트 수가 n개이면 2의 n승까지 데이터 표현이 가능합니다.예를 들어 unsigned char의 경우 …

[C++] template, 템플릿 사용 예제 – 2. 클래스 템플릿

이번 글에서는 클래스 템플릿에 대해 알아보겠습니다. 클래스 템플릿도 함수 템플릿처럼 만드시면 됩니다. 클래스 멤버 변수나 함수에 템플릿을 지정해주셔서 위와 같이 사용하시면 됩니다.만약 클래스 내부에 멤버 함수를 선언하고, 외부에 멤버 함수를 정의하면 아래와 같이 코딩해야 합니다. …

[C++] 각도, 길이로 원하는 좌표값 구하기

이번 글에서는 특정한 좌표에서 각도, 거리를 입력했을 때 좌표를 구하는 방법을 알아보겠습니다. 해당 방법을 알기 위해서 삼각함수(sin, cos)를 사용해야하는데 이 함수들은 매개변수로 라디안을 사용합니다.보통 일반적으로 사용하는 0도, 90도, 180도 등등은 60분법(Degree)이라 합니다. 그리고 라디안은 호의 길이를 이용한 호도법(Radian)을 …

[C++] 함수 오버로딩(Function Overloading)

안녕하세요 이번 글에서는 함수 오버로딩에 대해 알아보겠습니다. 우선 아래 코드의 문제점을 무엇일까요? swap(&c, &d);를 보시면 double형 주소를 인자로 전달합니다. 하지만 swap 함수는 int 포인트로 인자를 받으므로 “double *”가 “int *”로 형변환이 되지 않아 에러가 생깁니다. 그렇다고 …

[C++] tolower, toupper 대소문자 변환

안녕하세요 오늘은, C++의 대소문자 변환하는 함수 tolower, toupper 함수를 알아보겠습니다.tolower, toupper함수는 인자로 1개의 아스키 코드 값을 전달 하면 해당 문자의 대소문자를 변환해 줍니다. 대문자 -> 소문자로 변환하는 tolower의 함수 원형은 아래와 같습니다. msdn에서는 tolower을 수행하기 …

[C++] namespace

처음에 개발을 배우면 아래와 같이 둘중 하나를 가지고 코딩하게 됩니다. 또는 저는 std:: 쓰는게 싫어서 using namespace std;를 많이 사용했습니다.이 namespace는 왜 쓰는 걸까요? namespace는 코드 영역을 정의하기 위해 사용합니다. 아래 코드를 보시죠. 아래의 두 …

[C++] 비트 단위 연산자 – 설명 프로그램

저번 글에서 비트 단위 연산자에 대해서 설명했었습니다.이미지가 아니라 눈으로 보고, 실제로 조작하는 프로그램이 있었으면 좋겠다고 생각해서 만들게 됐네요. 아래 파일을 다운받고 실행 하시면 됩니다. BitwiseTest.exe를 실행 시키면 아래와 같이 실행 됩니다. 저번 글에서 처럼 총 …

[C++] union(공용체) – 비트 필드

오늘은 union, 공용체에 대해 알아보겠습니다.공용체는 구조체와 비슷하지만  공용체 안에 선언된 변수들은 메모리를 공유한다는게 제일 큰 차이가 되겠네요.이것 또한 현재는 많이 사용하지 않지만 과거에 메모리가 부족했을때 많이 사용했습니다.네트워크 통신에서 과부하를 줄이기 위해 패킷을 최대한 줄일 때에도 많이 사용합니다. 사용 방법은 아래와 같습니다. 1Byte를 공용체를 사용하여 비트 단위로 관리하면 선언하는데 작업이 더 걸리지만 사용하는 입장에서는 매우 편하게 사용할 수 있습니다. 위 코드를 이미지화 하면 아래 그림과 같습니다. 실제 예제로 알아보겠습니다사람을 구조체로 선언한다고 합시다.여러가지 신체부위가 있겠지만, 양손(손가락 포함)을 코드로 구현하면 아래와 같습니다. 만약 위와 같이 bool로 선언하면 변수크기가 …