'분류 전체보기' 카테고리의 글 목록 (9 Page)
본문 바로가기

반응형

분류 전체보기

(78)
[C++] C++ STL, 벡터 (Vector) 예제 STL 이란, C++에서 제공하는 표준 템플릿 라이브러리(Standard Template Library)로 자료구조, 알고리즘 등을 편하게 사용할 수 있도록 해주는 라이브러리이다. STL 은 크게 container, iterator, algorithm 으로 구성되는데 Container는 순차 컨테이너(sequence container), 연관 컨테이너(associative container)가 있다. Sequence Container중 대표적인 것이 바로 Vector이다. 다음 예제는 Vector에서 가장 많이 사용되는 함수들이다. #include // 구조체: 사용자 정의 자료형 typedef struct DATA { CTime time; double fVal1; double fVal2; DATA() ..
[C++] C++ 표준 템플릿 라이브러리 (STL) :: Container STL 이란, C++에서 제공하는 표준 템플릿 라이브러리(Standard Template Library)로 자료구조, 알고리즘 등을 편하게 사용할 수 있도록 해주는 라이브러리이다. STL 은 크게 객체를 보관할 수 있는 컨테이너 (container), 컨테이너에 보관된 원소에 접근할 수 있는 반복자 (iterator), 반복자들을 가지고 일련의 작업을 수행하는 알고리즘 (algorithm) 으로 구성된다. Container는 데이터를 저장하는 자료구조로 1. 순차 컨테이너 (sequence container) : 자료를 순서대로 저장하는 자료구조 ex) vector, list, deque, array 2. 연관 컨테이너 (associative container) : 빠르게 검색할 수 있는 노드 기반 이진..
[VisualStuio] Sqlite3.dll을 찾을 수 없음 오류가 발생했습니다. Sqlite3.dll을 찾을 수 없음 오류가 발생했습니다. 해당 오류의 원인은 32비트로 실행시켰기 때문이었다. 따라서 SysWOW64 폴더에 sqlite3.dll(32bit) 를 옮겨서 해결하였다. + 내컴퓨터는 64비트지만, 프로그램을 실행시키는 컴퓨터가 64비트와 32비트가 섞여있어서 32비트에 맞춰서 개발했기 때문에 Sqlite도 32비트에 맞춰야했다.
[VisualStudio] cannot open file 오류 해결 LINK : fatal error LNK1181 : cannot open file sqlite3.lib sqlite를 설치하는 도중 라이브러리를 찾을 수 없다는 오류가 발생하였다. ​ 원인은, 라이브러리의 위치를 설정해주지 않았기 때문이었다. ​ 따라서 다음과 같이 해결하였다 [Project] - [Properties] 메뉴를 클릭한다. [Cofiguration Properties] - [VC++Directories] - [Library Directories]에서 [해당 라이브러리가 위치한 폴더] 를 입력한다. (나는 Lib 폴더를 따로 만들지 않고, Debug 폴더 내에 위치시켰지만 프로그램에서 사용하는 라이브러리가 많은경우 Debug폴더와 동일한 계층에 Library폴더를 따로 생성하여 라이브러리를 ..
[MFC] 파일 저장 시 폴더 생성하기 파일 저장시, 해당 폴더가 없는 경우 파일이 생성되지 않는다. 따라서 CreateDirectory()를 사용하여 디렉토리를 생성한 뒤 하위에 파일을 저장한다. 참고로 CreateDirectory()는 디렉토리를 생성한 경우 TRUE, 생성에 실패할경우 FALSE를 반환한다. CTime cTime = CTime::GetCurrentTime(); CString strTime = cTime.Format(_T("%Y%m%d%H%M%S")); CString strfilePath = GetProgramPath() + "\\" + strTime; // 디렉토리 생성 if (CreateDirectory(strfilePath, NULL)) { ... } 위와 같이 디렉토리를 매번 생성해도되지만 한번 생성한 디렉토리를 계..
[MFC] CString 과 CTime 간 변환 1. CTime을 CString으로 변환 // CTime을 CString으로 변환 CString strDateTime; CTime tiTime(2020, 12, 03, 16, 02, 25); strDateTime = tiTime.Format(_T("%Y-%m-%d %H:%M:%S")); //strDateTime = "2020-12-03 16:02:25"; //현재시간을 년월일시분초 로 표현 //CTime::GetCurrentTime() 은 현재시간 CString strTime = CTime::GetCurrentTime().Format(L"%Y%m%d%H%M%S"); 2. CString을 CTime으로 변환 void GetCStringtoCTime(CString strTime, CTime& cTime) {..
[MFC] AfxExtractSubString 함수를 이용한 문자열 파싱 AfxExtractSubString() 함수를 이용하여 간단하게 문자열을 분리할 수 있다. 다음 예제를 살펴보자 예제 1) CString str = "118.131.90.22"; //파싱할 문자열 CString strA, strB, strC, strD; //파싱되는 문자열을 담을 변수선언 AfxExtractSubString(strA, str, 0, '.'); // strA == "118" AfxExtractSubString(strB, str, 1, '.'); // strB == "131" AfxExtractSubString(strC, str, 2, '.'); // strC == "90" AfxExtractSubString(strD, str, 3, '.'); // strD == "22" "118.131.9..
[C++] 조건부 컴파일(define, if) #if ~ #endif #if 구문은 if랑 아주 비슷하다. 이것은 어떠한 구문을 컴파일 할지 안할지를 지정할 수 있다. 1 2 3 4 #define A 1 #if A source code..... #endif 위 source code 부분은 컴파일이 된다. if문에서와 같이 참, 거짓을 구분하여 컴파일이 된다. 위에서 A값은 1 즉 0보다 큰 수이기 때문에 참인 것이다. 직접 아래와 같이 하면 거짓이기 때문에 source code 부분은 컴파일이 되지 않는다. 1 2 3 #if 0 source code.... #endif

반응형