我已完成扑克游戏,但现在我希望通过显示黑桃,心形,钻石和俱乐部让它看起来更好一些。我试过这个答案:C++: Printing ASCII Heart and Diamonds With Platform Independent
也许是愚蠢但是我试试:
cout << 'U+2662' << endl;
我不知道如何写它。
答案 0 :(得分:2)
要输出UTF-8字符,您需要将其编码为十六进制字节。我会从您链接的问题的答案中窃取this link to fileinfo.com - 如果您跳转到UTF-8表示,它会显示0xE2 0x99 0xA5
,您可以将其转换为"\xE2\x99\xA5"
作为字符串。
但是我无法保证您的控制台会显示UTF-8,所以这个答案可能无济于事。
答案 1 :(得分:0)
如果您只是尝试在Windows控制台中使用旧的ASCII控制字符,则可以使用:
cout << (char) 3 << (char) 4 << (char) 5 << (char) 6 << endl;
//hearts, diamonds, clubs, spades
这不是Unicode,我认为它不是非常便携。我真的不知道你问题的便携式解决方案。
答案 2 :(得分:0)
您需要使用std::wcout
并使用UTF-16编码为十六进制字节(作为Mark答案),但我不能保证您的任何字符都能在Windows上正确显示(在Vista之前?)因为Windows控制台从来没有真正用于此类事情。您可以将wcout
与Visual Studio和Cygwin一起使用,但我不认为MinGW支持它。确保使用宽字符文字:L"string"
。
或者,您可以使用预处理器为每个平台提供正确的常量定义。我想在较旧的平台上最多只有三个ASCII,而现代的UTF-8和新的Windows上的UTF-16(wcout
)。