반응형
WASTE TIME
# 뻘짓의 연속
-C 종류의 언어에서 wide문자이고 아닌것에 민감해지는 중요한 경험이였다. 더하여 기본 char형을 지원하는 함수가 있다면 wchar를 지원하는 함수는 반드시 대칭적으로 존재한다는 것도 깨달았다.
# w가 붙는다면
-wstring, wchar_t , wofstream, wout 등등 wide문자를 사용해야한다면 그에 대한 모든 행동은 다 w종류로 통일 시켜야한다. 그렇게 안하면 엄청난 시간 소모와 고통을 겪는다. (^^7)
-예시로 wstring을 string을 출력하는 cout으로 출력하려고 하면, 확장된 문자 셋에 적용 받는 한글이나 기타 언어들은 출력이 되지 않는 것을 볼 수 있다. 아래 예제는 다행히 컴파일 단에서 오류를 확인해 수정이 가능하지만 ofstream으로 파일을 출력할 경우 파일은 생기지만 그안에 아무것도 존재하지 않거나 이상한 문자열이 출력됨을 확인 할 수 있다.
wstring str = L"안녕하세요! .. Hello\n";
std::cout << str << endl;
# wide 문자 한글 설정
-한글을 사용하게 된다면 다음과 같은 설정을 해야한다. 사용하는 목적에 맞게 골라 설정하면 된다.
#include <locale>
std::locale::global(std::locale("kor")); // 전역 설정
wcout.imbue(std::locale("kor")); // wcout 한글 설정
wcin.imbue(std::locale("kor")); // wcin 한글 설정
wofstream fout;
fout.imbue(std::locale("kor")): // wofstream 한글 설정 등등 wide문자를 사용하는 객체에 locale설정을 함.
반응형
'Programming > C/C++' 카테고리의 다른 글
C/strcmp, wcscmp, _mbscmp 차이 (0) | 2018.05.16 |
---|---|
C/GCC/최적화 및 디버깅 옵션 추가 (0) | 2018.03.14 |
C/Pointer/C포인터의 이해와 활용 - 3 (0) | 2018.03.13 |
C/Pointer/C포인터의 이해와 활용 - 2 (0) | 2018.03.12 |
C/Pointer/C포인터의 이해와 활용 - 1 (0) | 2018.03.12 |