如何使用 g++ 打印出≠到终端?
How to print out ≠ to terminal using g++?
我想在终端中打印 ≠
。我试过了
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')存储 char 变量,因此它们内部只能放置 ASCII 字符。您的字符不是 ASCII 的一部分 table,我们需要更改编码。
如果只是打印(而不是 store/process)你的角色,你应该使用另一种编码,例如 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 符号打印到控制台。
我想在终端中打印 ≠
。我试过了
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')存储 char 变量,因此它们内部只能放置 ASCII 字符。您的字符不是 ASCII 的一部分 table,我们需要更改编码。
如果只是打印(而不是 store/process)你的角色,你应该使用另一种编码,例如 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 符号打印到控制台。