tstring 클래스는 std::basic_string<> 탬플릿 클리스를 상속받은 클래스이다.

지금까지 std::string이든 std::wstring이든 사용하면서 불편한 점이 바로 CString에는 있는 format()함수가 없다는 것이다.

이를 위해 wsprintf를 사용한다든지 했을텐데 필자 역시 불편하여 이를 위한 유틸리티 함수를 몇 개 만들어본다. 기본 개념은 _snprintf() 라는 함수의 첫번째와 두번째 인자에 NULL과 0을 넣으면 실제 완성된 문자열의 길이를 리턴해 준다.

이 길이를 이용해서 버퍼를 할당하고 완전한 _snprintf() 함수를 호출하여 마무리 한다.

#include "tstring.h"
...
...
void CMFCApplication1Dlg::OnBnClickedButton1()
{
	tstring a;
	std::format(a, _T("aaa : %.3f"), 0.2232487);
	std::append_format(a, _T("==> abc : %s"), _T("mjp") );
	MessageBox(a.c_str());
}

결과는 다음과 같다.



소스파일은 첨부파일에서 다운받으세요.

tstring.7z



+ Recent posts