C++에서의 로케일 선언

C++

                        C++에서의 로케일 선언


프로필 경직2017. 12. 2. 23:31
이웃추가본문 기타 기능

			**본문 폰트 크기 조정**
			본문 폰트 크기 작게 보기
			본문 폰트 크기 크게 보기

c와 c++에 존재하는 수많은 귀찮은 점들 중 하나로, 한글(유니코드)의 입출력이 있다.

c언어에서는 wchar.h헤더와 locale.h헤더를 이용하여..
setlocale(LC_ALL,"");
wchar_t * text = L"안녕";
wprintf("%s",text);
이런식으로 한글의 출력이 가능하다.

그렇다면 c++의 cout이라면 어떨까. 그냥 다른건 그대로 두고 wcout만 쓰면 되지 않을까?
setlocale(LC_ALL,"");
wchar_t * text = L"안녕";
wcout<<text<<endl;

이러면

글자가 깨지거나 안나온다.

도대체 왜 그럴까?

해결책은 간단하다.

locale.h 말고 그냥 locale 헤더를 쓰면 된다.

왜 이러는지는 모르겠다. 호환성좀 유지해주면 덧나나