对于控制台应用程序,我需要显示符号:√
当我尝试使用时输出它:
std::cout << '√' << std::endl;
或
std::wcout << '√' << std::endl;
,
它输出数字14846106
。
我尝试过寻找答案并找到以下几点建议:
std::cout << "\xFB" << std::endl;
和
std::cout << (unsigned char)251 << std::endl;
两者都显示上标1.
这是使用带有Lucida字体的Windows控制台。我已尝试使用各种字符页面并始终获得相同的上标1.当我尝试通过getchar()
或cin
找到其值时,该符号将转换为大写字母V
。但是,我确信只需将其粘贴即可显示此字符。是否有一种显示Unicode字符的简单方法?
答案 0 :(得分:1)
实际上"\xFB"
或(unsigned char)251
是相同的,并且对应于根符号√...但不是Lucida字体和其他字体ASCII表,其中它是¹(上标1)
使用STL切换到Unicode是可能的,但我怀疑它会在Windows上运行...
#include <iostream>
#include <locale.h>
int main() {
std::locale::global(std::locale("en_US.UTF8"));
std::wcout.imbue(std::locale());
wchar_t root = L'√';
std::wcout << root << std::endl;
return 0;
}
由于这不会让您满意,这里是一个可移植的Unicode库:http://site.icu-project.org/