[완료] STL string 사용시 wstring 일때, 출력이 되지 않습니다.

KGCA15기최익필의 이미지

#include windows.h
#include iostream
#include string
#include locale

using namespace std;

int main()
{
std::locale::global( std::locale( "kor" ) ); //"UTF-8") );

//DWORD _Check = GetTickCount();
//_Check = GetTickCount() - _Check;

wstring babo;

babo = TEXT("ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ");

wcout << babo << endl;

babo.clear();

}

코드는 이렇게 했습니다.
하지만 출력이 안됩니다.

인터넷을 뒤져서 std::locale::global( std::locale( "kor" ) ); <- 넣고 하면
잘된다고 하는데, 저는 되지 않습니다. VC 2005 쓰고 있습니다.

doldori의 이미지

locale::global()은 global

locale::global()은 global locale을 설정하는 것일 뿐이므로
그 자체만으로는 이미 생성된 stream에 영향을 미치지는 않습니다.
imbue()를 쓰십시오.

wcout.imbue(locale("kor"));
wcout << L"가나다";

ps. locale은 환경에 의존하는 부분이 많아서 저도 확실히는 모르겠더군요.
아무튼 VC 2005에서는 이렇게 하면 됩니다.

KGCA15기최익필의 이미지

감사합니다.

감사합니다. 해결하였습니다.
좀더 검색해서 해당 이유에 대해서 밝혀야 할것 같습니다.

댓글 보기 옵션

원하시는 댓글 전시 방법을 선택한 다음 "설정 저장"을 누르셔서 적용하십시오.