C++에서의 로케일 선언
C++에서의 로케일 선언
경직2017. 12. 2. 23:31
이웃추가본문 기타 기능
**본문 폰트 크기 조정**
본문 폰트 크기 작게 보기
본문 폰트 크기 크게 보기
가
-
공유하기
-
URL복사
-
신고하기
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 헤더를 쓰면 된다.
왜 이러는지는 모르겠다. 호환성좀 유지해주면 덧나나