2013-10-12 29 views
1

我试图在控制台中打印一些“特殊”字符(127以上),但不知何故打印不出来。ASCII字符未打印在WCOUT和COUT中

我有这样一小段代码:

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

它打印的 'a' 但后来什么都没有。如果我使用cout/string或wcout/wstring,则无关紧要。 (与COUT我只看到“?”和wcout什么,这结束流)

ASCII码为254这个角色。这里会发生什么?我认为这可以打印?

+0

有相当多的代码在这里似乎没有作出贡献的问题。当你在自己的线程中运行这个代码时,这个**真的只会发生吗?随着所有的等待?不要停止提炼测试用例,直到它真的是最小的编译和运行并显示问题。 –

+0

@PeteBecker好吗更新 – Gizmo

+0

尝试增加'的std ::的setlocale(LC_CTYPE, “”);'你的主要函数的开头(需要'')。 –

回答

3

从我挂在评论的答案,我想这是您的解决方案:

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

_setmode(_fileno(stdout), _O_U8TEXT); 
相关问题