我正在开发一个c ++ windows控制台程序,我需要打印度(°)和立方体符号(³)。
关于°的信息很多,唯一对我有用的方法是:
cout << value << "\370 C" << endl;
现在,这是什么术语? ³我需要同样的东西。 我读过某个地方\ 370是八进制代码,但我找不到任何相关的图表,或者用³的任何等价物。
答案 0 :(得分:1)
让您的生活更轻松,并使用Unicode。使用Unicode,您不需要显式编码非ASCII字符,只需将它们按原样包含在源中即可。这也使您的程序独立于控制台的代码页,在另一个国家/地区可能会有所不同。
需要的步骤:
_setmode(_fileno(stdout), _O_U16TEXT)
一次。这会将标准输出切换为UTF-16编码。 UTF-16是首选的Windows编码,因为操作系统在内部使用它,因此不会产生任何转换开销。std::wcout
代替std::cout
。切勿混合使用。L
前缀使用广角(UTF-16)string literals。的
#include <iostream>
#include <io.h>
#include <fcntl.h>
int wmain(int argc, wchar_t* argv[])
{
// Switch stdout encoding to UTF-16.
_setmode(_fileno(stdout), _O_U16TEXT);
// Output UTF-16 string literal.
std::wcout << L"°³" << std::endl;
}
答案 1 :(得分:0)
您可以尝试类似
的内容cout << value << (char)176 << " C" << endl;
将解析为char的数字作为ascii符号的十进制表示。
³应该是十六进制的0xB3,十进制的179
更多信息,请游艇this。