본문 바로가기

Program31

[C++] 입출력 속도 개선 / 백준 시간초과 해결 방법 / cin.tie(NULL)과 sync_with_stdio(false) [입출력을 개선하는 방법]대부분 알고리즘 해석과 debug 하는 데 있어 console창을 많이 사용합니다. 이미 다들 알고계시겠지만 C++에서 콘솔에 입출력하는 방법은 두 가지 존재합니다. 기존의 Scanf와 Printf를 사용하는 방법과 std함수의 cin과 cout를 이용하는 방법입니다. 그런데 문제 해석에 있어 어떤부분은 cout를 사용해도 정상적으로 진행되고, 어떤 부분은 진행이 안 되는 케이스가 존재합니다. 이런 현상을 이해하기 위해서는 정확하게 어떤 식으로 std함수가 동작하는지 확인해야 하지만 시간상 해결방법을 먼저 설명하겠습니다. 코드의 앞부분에 cin.tie(NULL) sync_with_stdio(false) 두개 문장을 입력하면 증상이 해결됩니다.  [cin.tie]tie는 의미와 반.. 2024. 5. 21.
[MFC / C++] std 함수 정의와 사용 방법 / 표준 입출력 namespace 정의 (std 생략하기) [std란]모든 프로그램 언어가 그렇듯 C++에서도 많은 표준 라이브러리를 지원합니다. 대표적으로 프로그램 입문에서 배우는 #Include 가 있습니다. 바로 표준 입출력 제어를 쉽게 할 수 있도록 도와주는 헤더 파일입니다. std는 "Standard" 표준의 약자로 C++ 표준 라이브러리의 모든 식별자를 직접 사용할 수 있도록 도와줍니다. 추가로 여러 라이브러리를 지원하는데 종류가 워낙 방대하여 위키를 참조하시는게 좋습니다. 간단하게 확인하는 방법은 std 입력 후 마우스 우클릭 -> F12버튼을 클릭해 참조 함수를 확인할 수 있습니다. [std 대표 함수]프로그램에 입문하게 되면 가장 먼저 출력에 대해 배우게 됩니다. C언어에서는 Print.f를 배우는데요. C++에서도 동일하게 사용 가능하지만 표준.. 2024. 5. 12.
[WPF / C#] 프로그램 설정 파일 한번에 불러오기 / ini파일 한번에 읽기 / 제네릭T 함수 [ini 설정파일] 프로그램을 짜다 보면 설정값을 UI에서 수정하면 별도로 저장해야 하는 파일을 관리해야 하는 경우가 많습니다. 그 외에 프로그램을 빌드하지 않아도 프로그램을 재시작하면 설정파일을 적용해야 되는 경우도 다반사고, UI에서 사용자가 제어하면 위험하지만 개발자나 관리자급에서만 컨트롤할 수 있도록 설정파일을 밖으로 빼는 경우가 있습니다. 대부분 설정파일은 .ini 확장자로 저장하게 되는데 일반 텍스트로 구성하게 되면 섹션이 구분되어 있지 않기 때문에 유지보수가 어렵습니다. ini 파일은 섹션과 키값에 따라 설정파일 내부 내용을 설정할 수 있는 큰 장점이 있습니다. ini 파일을 읽는 방법에도 여러 가지가 존재하는데 물론 가장 간단한 방법은 섹션과 키값을 읽어오는 함수를 만들고 이를 읽어오는 작.. 2024. 4. 2.
[WPF / C#] 프로그램 설정 파일 관리하기 / ini파일 설정 / 프로그램 변수 외부 관리 [프로그램 변수 설정] 프로그램에서는 변수를 어떻게 관리하는지에 따라 유지보수 용이성이 상승하기도 하고 극악으로 치닫기도 합니다. 특정 변수의 값을 프로그램에서 제어하게 되면 하드코딩하게 되어 변수의 값을 변경할 때마다 프로그래머에게 요청하여 소스의 값을 수정하고 다시 빌드하여 패치를 진행해야 합니다. 위 상황을 방지하기 위해 별도 설정파일을 관리하고 프로그램 시작시에나 특정 트리거가 발생할 때 해당 설정파일을 읽어와서 클래스 변수를 세팅하고 시퀀스를 진행하게 됩니다. 일반적으로 txt파일로 관리를 진행하지만 순서에 따른 유지보수가 어렵기 때문에 ini 파일로 관리하게 됩니다. txt파일로 관리할 시 항목을 추가하고 싶을 때 순서를 지켜야 하며, 순서가 꼬일 경우 프로그램에서 추가 작업이 필요하기 때문에.. 2024. 3. 30.