如何使用 g++ 将≠打印到终端

How to print out ≠ to terminal using g++?

本文关键字:打印 终端 何使用 g++      更新时间:2023-10-16

我想在终端中打印。我试过了

cout << 'u2248' << endl;
cout << 'U00002248' << endl;
cout << '≠' << endl;

这给了

14846344
14846344
14846368

我尝试用双引号替换单引号

Ôëê
Ôëê
Ôëá

怎么能做到呢?我很好奇我得到的输出的解释是什么?我正在运行 Netbeans 9,但也直接从命令行使用 g++ 进行了测试。我认为这应该是可能的,因为echo ≠在 Windows 命令提示符下产生正确的输出。

因此,在C++中,就像在普通 C 中一样,默认情况下我们可以只使用 ASCII 字符。char 变量仅包含 8 位(1 字节)来存储值,因此最大值 - 2^8=256 个不同的符号可以由一个 char 变量编码。单引号(如"a")存储字符变量,因此可以在其中放置 ASCII 字符。您的字符不是 ASCII 表的一部分,我们需要更改编码。

对于仅打印(而不是存储/处理)您的字符,您应该使用另一种编码,例如 UTF-8。您可以通过编程方式执行此操作:

std::setlocale(LC_ALL, /*some system-specific locale name, probably */ "en_US.UTF-8");
std::cout << "u2260" << std::endl;

或者通过命令行选项到 g++(例如 -finput-charset=UTF-16)。如您所见,我使用双引号将非 ASCII 符号打印到控制台。