2012-12-08 4 views
-2

왜 wchar_t를 사용할 때 출력 결과로 숫자를 얻습니까? 표시되는 '숫자'와이드 문자 출력 결과

#include <iostream> 
using namespace std; 
int main() 
{ 
    wchar_t q; 
    q = 'A'; 
    cout << q; 
    q = 'B'; 
    cout << q; 
    q = 'C'; 
    cout << q; 
    return 0; 
} 
+3

'std :: wcout'와 넓은 리터럴을 사용하십시오. – chris

+0

wcout << q; 나는 ABC 결과를 얻는다. – user1888353

+1

나는 규칙이 무엇인지 100 % 확신하지는 못했지만,'wchar_t'는 정수처럼 취급 될 수있다. 그래서 숫자를 얻는다. -'wchar_t'에 대해'operator <<'가 없기 때문에. 'std :: ostream'을 사용하여 정수로 변환하고 그 오버로드를 대신 사용합니다. – chris

답변

3

는 문자의 있습니다. 그게 당신이 '숫자'를 얻는 이유입니다. 당신은 문자를 표시 할 경우에 당신은 wcout

0

std::coutbasic_iostream<char>입니다 사용할 수 있습니다. basic_iostream<char>의 경우 wchar_t에 대해 operator<< 과부하가 없습니다. wchar_t 개체를 출력 할 때는 operator<< 과부하가있는 형식으로 변환해야합니다. 선택한 변환은 char이 아닌 정수 유형이므로 표현 된 문자 대신 정수 값이 표시됩니다.