WCOUT和COUT中未打印ASCII字符

时间:2013-10-12 13:44:08

标签: c++ cout unicode-string

我正在尝试在控制台中打印一些“特殊”字符(大于127),但不知何故它不会被打印出来。

我有这个小代码片段:

#include <iostream>
int main()
{
    std::wcout << L"a■■■■■■■■■■■a■■■■■■■■■■■■■■a" << std::flush;
    return 0;
}

它打印'a'但然后......没有。如果我使用cout / string或wcout / wstring并不重要。 (对于cout我只看到“?”而在wcout中没有,它结束了流)

此角色的ascii代码为254。这里可以发生什么?我觉得打印好吗?

1 个答案:

答案 0 :(得分:3)

从我在评论中链接的答案,我认为这是你的解决方案:

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

_setmode(_fileno(stdout), _O_U8TEXT);