int
을 매개 변수로 사용하여 wchar_t*
형식을 얻으려고합니다. 나는 많이 봤지만 더 혼란스러워졌다. 나는 [5]
를 인쇄하려면 위의 예상wsprintf를 사용하여 int를 wchar_t로 변환 *
int main(int argc, char** argv) {
wchar_t buf[16];
wsprintf(buf, L"%d", 5);
wprintf(L"[%ls]\n", buf);
system("pause");
return 0;
};
이 wchar_t
, wsprintf
및 wprintf
각각 char
, sprintf
및 printf
의 넓은 문자 동등하다고 가정하는 데,하지만 [
및 ]
사이에 쓰레기를 인쇄 : 그래서,이 코드를 고려 . 원하는 결과를 얻기위한 올바른 방법은 무엇입니까? 그리고 내가 여기서 오해 한 것은 무엇입니까?
(I는 휴대 여기에 보안보다 더 중요하다 명확히해야한다, 그래서 내가 대신 안전 벤더 고유의 확장 기능이 제품군을 사용하는 솔루션을 알고 싶습니다.)
인쇄 쓰레기는 어떻게 압니까? 출력을 파일로 파이프하여 16 진수 편집기에서 살펴 보았습니까? –
아니요.'wprintf'가 콘솔에 예상대로 인쇄 할 것이라고 가정했습니다. 어떻게 든 잘못 되었나요? –
나를 위해 (맥 OS X 10.7.5),'swprintf()'는'[5]'를 예상대로 출력하지만'wsprintf()'는 사용할 수 없다. –