Windows控制台不显示平方根标志

时间:2013-08-02 00:30:09

标签: c++ windows

对于控制台应用程序,我需要显示符号:√
当我尝试使用时输出它:
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字符的简单方法?

1 个答案:

答案 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/