Win32 C ++:如何在控制台输出流上打印笑脸?

时间:2015-09-16 03:36:08

标签: c++

我尝试了setlocale,wchar,通常的char ...如何定义:

char c = '☻'
cout << c << endl;

打印到控制台上(这与VS2012和http://ideone.com/LJtDUz相关)

1 个答案:

答案 0 :(得分:0)

问题是Windows默认情况下不处理Unicode字符,Windows控制台无法显示它们。

我在This CPP Thread找到的解决方案如下:

#include <fcntl.h>
#include <io.h>
#include <iostream>

int
main(int argc, char* argv[])
{
    wchar_t* c = L"☻"; /* needed because the project is using 'Unicode Character Set' */

    _setmode(_fileno(stdout), _O_WTEXT); /* set stdout to UTF16 */
    std::wcout << c << std::endl; /* use a wide cout call to output characters */

    getchar();

    return 0;
}

当您尝试在代码中直接使用符号时,Windows会告诉您我需要将您的文件转换为Unicode,请确保接受并使用Unicode Character Set作为你的项目字符集类型。