2014년 9월 19일 금요일

[미완] [C/C++] wcout 유니코드 출력

[미완] [C/C++] wcout 유니코드 출력

유니코드로 프로그램 작성 했으므로
당연히 cout 말고 wcout를 사용했다.

하지만 출력이 안된다;;
알고 보니 한글설정을 해야 한다.

그래서
std::locale::global( std::locale( "kor" ) );
이것을 추가했는데
안되는 경우가 있다.
왜냐하면 Grlobal Locale을 설정하는 것이라서
Stream에 미치지 않기때문이다.

그래서
 std::wcout.imbue( std::locale( "kor" ) ); // 이것을 추가하면 된다.
 std::wcin.imbue( std::locale( "kor" ) ); // cin은 이것을 추가

#include <iostream>
using namespace std;

int wmain ( int argc, wchar_t *argv[] )
{
 std::wcout.imbue( std::locale( "kor" ) ); // 이것을 추가하면 된다.
 std::wcin.imbue( std::locale( "kor" ) ); // cin은 이것을 추가

wcout << L"한글테스트" << endl;

wchar_t* str = L"wchar_t 한글테스트";
wcout << str << endl;

return 0;
}

댓글 1개:

  1. 감사합니다. wstring에는 값이 제대로 들어있는데 wcout으로 출력이 되지 않길래 답답했어요 ㅠㅠ

    답글삭제