728x90

Language 77

[C++] Utf8 코드를 한글로 출력하기

리눅스에서 무선랜 인터페이스를 통해 주변의 Wifi를 검색하여 목록을 출력하는 기능을 구현 중, ssid가 한글이면 uft8 코드로 출력되었다. 한글 1개의 문자는 총 3개의 utf8 코드로 구성되어있으며 이를 잘 활용하면 식별할 수 있는 한글 문자(?)가 된다. 실제 기능을 구현할 때는 한글 중간 특수문자를 포함한 다양한 문자가 사이사이 올 수 있음에 주의한다. 크기 3의 char[]을 사용해 각 char 마다 utf8 코드를 넣어 한 개의 String으로 출력하였다. 아래 코드는 실제 QT Project에서 사용한 일부분이다. char hangulBuf[4] = {0,}; int hanIdx = 0; foreach (const QString& item, srcSplit) { if('x' == item..

Language/C++ 2021.05.24

[C++] Singleton 패턴을 사용하는 간단한 예제

코드를 구현하다보니 생각지 못하게 프로세스 내부에서 데이터 공유가 많이 발생하였고 singleton으로 수정해야 되는 부분이 있어, 샘플 코드를 작성하였다. - singleton.h #pragma once #include class Singleton { private: static Singleton* pInstance; Singleton() { num = 0; }; ~Singleton() {}; private: int num; public: static Singleton* getInstance() { if (pInstance == nullptr) { pInstance = new Singleton; } return pInstance; } void SetNum(int val) { num = val; } in..

Language/C++ 2021.03.02

[C++11] 가변인자(Variable Argument)를 이용한 Logger 만들기

1. 가변인자란? - 변수의 개수가 상황마다 변할 수 있는 인자. - 대표적인 예로 printf()와 scanf() 2. 가변인자를 사용하기 위한 함수 - va_start(var_list, lastfix) > Stack 상의 첫 가변인수의 위치를 구해 va_list 형에 대입한다. 함수가 호출되기 전에 선언되어 있어야 한다. > lastfix는 고정인수를 뜻한다. 고정인수는 가변인수의 시작번지를 찾기 위한 역할을 한다. (고정인수의 다음이 가변인수의 시작번지) - va_arg(va_list, type) > 가변 인수를 읽는 함수 > 첫 번째 인수는 va_start가 사용한 ap와 동일한 변수이고, ap가 가리키는 번지의 데이터를 가변인수로 읽는다. > 두 번째 인수는 type은 가변인수의 데이터 형을 나..

Language/C++ 11 2021.02.28

[C++11] std::function() 을 이용한 클래스 멤버 함수 저장 및 사용

C++ 11에서 std::function()을 이용해 함수를 미리 객체화하여 저장할 수 있다고 하여 아래와 비슷하게 코드를 사용하고 있다. Modern C++이나 C++ 11을 자세하게 이해한 후 코드를 실제 사용하는 코드에 대해 개선이 필요하다. - ReigsterFunc()을 이용해 함수를 객체화하여 저장, Exec를 통해 key에 따라 함수를 실행. #include #include template class State { public: void RegisterFunc(uint16_t keyEvent, std::function linkedFunc) { std::pair pair(keyEvent, linkedFunc); m_states.insert(pair); } void Exec(uint16_t ke..

Language/C++ 11 2021.02.28

[CSS] CSS Dimension

1. CSS Dimension (치수) - CSS는 다음과 같은 치수 특성이 있다. > width, height, max-width, min-width, max-height, min-height 2. 너비 및 높이 설정 - width와 height에는 패딩, 테두리 또는 여백이 포함되지 않는다. - width 및 height 속성은 다음 값을 사용할 수 있다. 구분 상세 길이 px, em, rem, pt, cm 등의 너비를 지정한다. % 포함하는 요소 너비의 백분율(%)로 너비를 지정한다. auto 브라우저가 요소에 적합한 너비를 계산한다. initial 너비와 높이를 기본값인 auto로 사용한다. inherit 부모요소에서 상속되도록 지정한다.

Language/CSS 2021.02.03

[CSS] CSS Box Model

1. Box Model ? - 웹 페이지에 표시할 수 있는 모든 요소는 하나 이상의 직사각형 상자로 구성된다. - CSS Box model은 일반적으로 이러한 직사각형 상자가 웹 페이지에 배치되는 방식을 설명한다. - 이러한 상자는 서로 다른 속성을 가질 수 있고 서로 다른 방식으로 상호작용할 수 있다. - 모든 상자에는 콘텐츠 영역과 패딩, 테두리, 여백 영역이 있다. - 패딩은 요소의 콘텐츠와 테두리(또는 테두리가 없는 경우 상자 가장자리) 사이의 투명한 공간 - 여백은 테두리 주변의 공간. - 또한, 요소에 배경색이 있는 경우 패딩 영역을 통해 표시된다. - 여백 영역은 항상 투명하게 유지되며 요소의 배경색에 영향을 받지 않지만 부모 요소의 배경색를 통해 보이게 한다. 2. 요소의 너비와 높이 - ..

Language/CSS 2021.02.03
반응형