2013-06-01 5 views
0

vswprintf를 사용하여 형식이 지정된 문자열에서 wchar_t * str을 구성하고 있습니다. 해당 형식의 문자열에서 std : 문자열을 인쇄하려면 Windows VS2008이 % S (으)로 허용하는 반면 Mac은 % s (으)로 받아들입니다. 예vswprintf : Mac % s 대 Windows % S

void widePrint(const wchar_t* fmt, ...) { 
    va_list args; 
    va_start(args, fmt); 

    wchar_t buf[32*1024] = {0}; 

    vswprintf(buf,(32*1024 - 1),fmt, args); 

    ...//Prints buf 
    ... 
} 
... 
std::string str = "normal String"; 
std::wstring strW = L"wideStr"; 
widePrint(L"str: %S wStr: %ls",str.c_str(), strW.c_str()); //Windows - VS2008 
widePrint(L"str: %s wStr: %ls",str.c_str(), strW.c_str()); //Mac - XCode 3.2.6 

왜 이러한 차이가 있습니까? 플랫폼 독립적 인 형식으로 vswprintf에서 std :: string/char *을 인쇄 할 수있는 방법이 있습니까?

답변

0

% hs는 Win과 Mac에서 char []를 인쇄하는 플랫폼 독립적 인 방법입니다.