2014-03-12 183 views
0

从我读过的内容中,很不幸,上下箭头没有十六进制代码。只有一个“友好的代码”。(请参阅链接页面的底部)有谁知道如何使用这个友好的代码?理想情况下,我只想要一个printf()语句来打印向上或向下箭头。谢谢! http://www.yellowpipe.com/yis/tools/ASCII-HTML-Characters/在Windows上显示向上/向下箭头C++

+0

您可以使用Unicode还是仅限于ASCII? – bbarnhart

+0

这些是HTML代码的字符代码,没有办法简单地将它们翻译成C++ ... – stefan

+0

这个所谓的友好代码是某些Unicode字符的HTML名称。 HTML,而不是C++。首先检查是否在可以在其终端上显示unicode的系统上(也就是说你在使用什么)。在这种情况下,Windows并不好(有一种UTF-8的可能性,但是只有当用户改变他的字体等时才有可能......) – deviantfan

回答

0

您需要使用std::wstring

#include <iostream> 
#include <string> 

int main() 
{ 
    std::wstring s(L"←→↑↓"); 
    std::wcout << s << "\n"; 
} 

注意,有L"←→↑↓""←→↑↓"之间的差异。后者是无效的,因为以及当然不是都是有效的ASCII字符。

在我的机器上,这被打印为<-->??,可能是因为终端不支持字符。

+0

如果您的系统支持源和输出都支持UTF-8,那么非L版本的字符串可能会正常工作。 –

+0

@MarkRansom但L版应该无处不在,对吧? – stefan

+0

几乎无处不在,看到我的答案。 –

3

假设Unicode环境根本不能与Windows控制台一起工作,因为它不使用Unicode。它使用代码页来确定可以显示哪些字符以及字符代码是什么;在我的美国Windows 7系统上,这是Code page 437。您可以看到箭头位于列表顶部,但不幸的是它们处于控制字符范围内。这意味着它们完全脱离了正常输出。您需要特殊的控制台输出功能来显示它们。

编辑:看起来你不需要需要特殊的控制台输出,只有像'\x0a'几个字符被剥离。以下字符串应该打印所有4个箭头:"\x18\x19\x1a\x1b"

如果您使用Windows API而不是控制台程序,请忽略此答案。

相关问题