728x90
반응형
Unicode를 사용하다 보면 sprintf 대신에 wsprintf를 종종 사용하게 되는데, wsprintf는 float형을 지원하지 않는다.
#include <string>
#include <iostream>
#include <atlstr.h>
using namespace std;
int main()
{
wchar_t txt[20];
double dval = 100.1;
wsprintf(txt, L"%s : %f", L"TEST", dval);
wcout << txt << endl;
return 0;
}
위와 같이 실행을 하면 float이 제대로 동작하지 않는 것을 알 수 있다.
이를 경우에는 swprint_s를 사용한다.
#include <string>
#include <iostream>
#include <atlstr.h>
using namespace std;
int main()
{
wchar_t txt[20];
double dval = 100.1;
swprintf_s(txt, 20, L"%s : %f", L"TEST", dval);
wcout << txt << endl;
return 0;
}
728x90
반응형
'Program Language > C & C++' 카테고리의 다른 글
[C++] namespace 사용 시 LNK2019 에러 발생 (0) | 2021.12.06 |
---|---|
[C++] std::bind 시 변수 메모리 유지 불가 (2) | 2021.12.02 |
[C++] 변수 묶어 사용하기 (pair, tuple) (0) | 2021.11.15 |
[C++] file in/out (0) | 2021.11.08 |
[C++] RAII Pattern (2) | 2021.10.26 |