如何在C ++中打印非ASCII字符

达维切特

我正在学习C ++,但无法弄清楚如何在C ++中打印特殊字符。即使我看到其他人发布了与此问题相关的信息,他们中的任何一个都可以解决此问题:

我只想打印这些字符->'♦','♥','♣','♠';

当我这样做时->

std::cout << '♦' << std::endl;

它打印出一个数字,例如14850470,但是当我将char传递给一个函数时,例如->

char foo(char a) 
{
    return a;
}
int main()
{
    std::cout << foo('♦') << std::endl;
}

而是打印出“ª”,有什么想法吗?

(我正在使用Windows上的MSVC编译器在VSCode中编写此代码。)

编辑:答案解决了我的问题(我chcp 65001在CL上执行)。但是,我有这个改变std::cout << '♠' << std::endl;这种std::cout << "♠" << std::endl;为了工作,因为作为在控制台上打印字符打印无关。

Yumetodo

没有可移植的方法。

在Linux / mac上,终端最近将UTF-8作为默认设置。因此,当您将UTF-8二进制文件输出到标准输出时,您会看到'♦'字符。

在Windows 10 1607或更高版本上,chcp 65001除了打印彩色表情符号外,其他都可以正常工作。由于损坏的字体配置对话框是固定的,因此您可以将TrueType字体用于chcp 65001控制台。在程序中,您应该将UTF-8二进制文件输出到标准输出。在运行程序之前,请运行chcp 65001并配置字体。

在Windows 10 1607之前的Windows上,您应该放弃尝试打印Unicode的尝试。


在C ++ 20上,char8_t假定C ++标准委员会采用UTF-8。今后,C ++(C ++ 26?C ++ 29?),当<locale><iostream>被重建和支持char8_t,您能够方便的printf Unicode字符。


我认为,您应该放弃尝试打印Unicode字符的尝试。使用支持TrueType字体和OpenType的某些库创建GUI。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将非ASCII字符打印为\ uXXXX

来自分类Dev

如何替换序列中的非ASCII字符?

来自分类Dev

如何在python列表中添加非ASCII字符?

来自分类Dev

如何在Pytest参数ID中显示非ASCII字符

来自分类Dev

如何在C#源代码中检测非ASCII字符

来自分类Dev

如何在C ++中比较/替换数组中的非ASCII字符?

来自分类Dev

如何在CLI中打印所有可打印的ASCII字符?

来自分类Dev

为什么字符数组在C ++中接受非ASCII字符?

来自分类Dev

从 c 文件中读取和打印特殊的 ascii 字符

来自分类Dev

Python:如何摆脱从文件中读取的非 ascii 字符

来自分类Dev

如何删除文本文件中的非 ASCII 字符?

来自分类Dev

如何在python中打印ascii表?

来自分类Dev

如何在汇编中打印ASCII数组?

来自分类Dev

如何在C ++中读取ascii中不包含的字符?

来自分类Linux

在Linux中,如何在C语言中将非ASCII字符压缩为1个字节?

来自分类Dev

如何在UTF-8编码文件中读写可打印的ASCII字符?

来自分类Dev

如何在Bash中通过不同的代码点打印ASCII字符?

来自分类Dev

如何在字符串java中打印最大和最小数量的ASCII值

来自分类Dev

如何以功能样式打印具有非ASCII字符的列表元素?

来自分类Dev

如何在 C++ 中循环遍历某些 Ascii 字符

来自分类Dev

如何在C#中替换扩展的ASCII字符?

来自分类Dev

如何在C#中获取ASCII字符?

来自分类Dev

如何读写非ASCII字符?

来自分类Dev

c读取非ASCII字符

来自分类Dev

如何在C中显式打印特殊字符?

来自分类Dev

如何在C中只打印一些字符?

来自分类Dev

如何在C ++中打印此“█”特殊字符?

来自分类Dev

如何在C中打印数字符号?

来自分类Dev

如何在C中的“如果”内打印字符

Related 相关文章

热门标签

归档