5

对于控制台应用程序,我需要显示符号: √<br> 当我尝试使用:
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()or找到它的值时cin,符号被转换为大写字母V。但是,我确信它可以通过粘贴来显示这个字符。有没有一种简单的方法来显示 Unicode 字符?

4

1 回答 1

1

实际上"\xFB"or(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/

于 2013-08-02T01:29:14.730 回答