2014-12-27 3 views
0

Visual Studio를 사용하는 동안 "폰"을 인쇄하려고하는데 유니 코드를 인식하지 못합니다.Visual Studio 2013에서 체스 조각을 인쇄하려고합니다.

누구나 해결 방법을 알려 줄 수 있습니까?

#include <iostream> 

using namespace std; 

int main() 
{ 
cout << "\33[37;42m\u2659\33[0m"; 
} 

내가 얻을 출력은 다음과 같습니다 : 일반 Windows 콘솔 창을 ANSI 이스케이프 시퀀스를 지원하지 않는

"<-[37;42m?<-[0m".

+0

유효하지 않은 코드이므로 'void main'을 사용하지 마십시오. 따라서 독서하는 학생은 무의식적으로 복사 할 수 있습니다. –

답변

3

이 기본적인 예입니다. ,

  • 대신 Windows 콘솔의 기능을 사용할 수 있습니다 일반적으로 유니 코드 문자를 표시하려면, 또는

  • 는 표준 데이터는 유니 코드 스트림을 설정 (마이크로 소프트 확장을 참조 _setmode)을 넓은 스트림을 사용 또는

  • 예 : 원하는 텍스트가있는 텍스트 파일을 표시합니다 (예 : UCS-2로 인코딩됩니다.


예 1 : Windows 콘솔 기능을 사용.

코드 : 심지어 예와 윈도우 8.x에서, 대신 전당포 기호의 사각형을 생성 가능성이 가장 높은 것입니다 일반 Windows 콘솔이 실행

#undef UNICODE 
#define UNICODE 
#include <windows.h> 

#include <string> 

namespace console { 
    using std::wstring; 

    const HANDLE output = GetStdHandle(STD_OUTPUT_HANDLE); 

    void write(const wstring& text) 
    { 
     if(text.length() == 0) { return; } 
     DWORD n_chars_written = 0; 
     WriteConsole(output, &text[0], text.length(), &n_chars_written, 0); 
    } 
} 

auto main() -> int 
{ 
    console::write(L"Oh look, a \u2659!\n"); 
} 

Lucida Console 글꼴. 콘솔 창 구현은 단순히 이러한 문자의 표시를 지원하지 않기 때문에 ’ s입니다. 캐릭터가 올바르게 저장되어 있습니다. Windows Write (표준 부속 프로그램)에 표시하지만, 일반 최종 사용자의 경우 ’은 실용적이지 않습니다.

간단한 해결책은 예를 들어. Console 콘솔 창 대체

그럼 멋진 탭을 얻을 수 있습니다. ;-)

 
H:\dev\test\so\0208>g++ using_console_api.cpp 

H:\dev\test\so\0208>a 
Oh look, a ♙! 

H:\dev\test\so\0208>_ 

예 2 : 다양한 스트림을 사용.

코드 :

#include <assert.h> 
#include <iostream> 

#include <fcntl.h>  // _O_WTEXT 
#include <io.h>   // _setmode, _isatty 

namespace console { 
    struct Usage 
    { 
     Usage() 
     { 
      const int out_fileno = _fileno(stdout); 

      assert(_isatty(out_fileno)); 
      _setmode(out_fileno, _O_WTEXT); 
     } 
    }; 
} // console 

const console::Usage console_usage; 

auto main() -> int 
{ 
    using namespace std; 
    wcout << L"Oh look, a \u2659!" << endl; 
} 

내가 한 번에, 아마도 원래는 MinGW의 g ++로, 하나는 정의 된 마이크로 소프트 라이브러리 확장을 얻기 위해 특별한 전 처리기 기호를 정의했다는 것을 기억합니다. 그러나 이것은 Nuwen 배포판에서 MinGW g ++ 4.9.1을 그대로 사용하여 잘 컴파일됩니다. 그리고 물론 Visual C++로도 잘 컴파일됩니다.

+0

그것이 우리가 다시 긍정적으로 만나는 요점입니다.작업 샘플을 제공하면 대답이 훨씬 향상됩니다. –

+0

예를 들지 않는다면, 어떻게해야하는지 이해하는 데 어려움을 겪고 있습니다. – Mumfordwiz

+0

@Mumfordwiz : 예,오고 있지만, 시간이 좀 걸릴 것입니다. ;-) –

관련 문제