2012-07-26 3 views
0

죄송합니다. 간단한 질문을 드려 죄송 합니다만 wstring에 wchar_T를 넣으려고합니다.하지만 체크 아웃하기 위해 프린트 할 때 wstring에서 쓰레기를 얻습니다. 코드는 다음과 같습니다 :wchar_t를 wstring으로 변환합니다.

wchar_t windowsDir[255]; 
memset(windowsDir, NULL, sizeof(windowsDir)); 
GetWindowsDirectory(windowsDir, 255); 
std::wstring winDir(windowsDir); 

if (debug){ 
    wprintf(L"Windows Dir is %s\r\n", windowsDir); 
    wprintf(L"Windows Dir is %s\r\n", winDir); 
} 

지금까지 내가 내가 화면에 쓰레기를 얻고있다 부끄러워 그래서 해결할 수없는 옳은 일을하고있어 예로부터 말할 수 있습니다.

덕분에, 사전에, 당신의 도움,

건배,

답변

1

을 위해 당신은 wprintf을 사용하고 있습니다. 이 기능은 std::wstring을 허용 할 수 없습니다. printf과 친구 또는 가변 인수 함수를 절대로 사용해서는 안된다는 주된 이유는 완전히 무 형제이며 C++ 표준 라이브러리 유형을 포함하여 POD가 아닌 유형에도 대처할 수 없다는 것입니다.

C++ IOstream은 여기에서 완벽하게 올바르게 작동합니다.

+0

감사합니다. 나는 << winDir.c_string을 사용했습니다. –

관련 문제