将盲文字符打印到cmd c ++

时间:2015-11-04 11:04:18

标签: c++ windows cmd

对于一个程序,我需要将盲文字符输出到控制台。

我找到了一种使用以下代码输出unicode字符的方法:

#include <iostream>
#include "fcntl.h"
#include "io.h"

using namespace std;

int main() {
    _setmode(_fileno(stdout), _O_U16TEXT);
    wcout<<L"ĐĄßĞ"<<endl;
    return 0;
}

将cmd的字体更改为Lucida Console。

然而,有一个问题是盲文字符没有显示就是这样。实际上,我甚至无法将它们复制并粘贴到代码中,因为它们看起来是空白的。在Linux中一切正常(我可以看到,复制并粘贴这些字符),但我需要Windows应用程序。

我想使用这些字符的代码有一定的可能性,我试过这种方式,但没有成功。

任何人都可以帮我完成这项任务吗?

1 个答案:

答案 0 :(得分:1)

  1. 您需要安装支持Unicode的等宽字体。为了解决这个问题,我使用了来自http://www.wazu.jp/gallery/Fonts_Braille.html的FreeMono.ttf。

  2. 安装字体后,编辑注册表以将字体添加到控制台的字体列表中:HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Console \ TrueTypeFont。 Lucida Console和Consolas应该有一个000条目。为所需的每种字体的值名称添加另一个零。我添加了000并设置为FreeMono

  3. 重新启动控制台,然后编辑其属性以选择字体。

  4. 这是我使用的代码:

    #include <iostream>
    #include "fcntl.h"
    #include "io.h"
    
    using namespace std;
    
    int main() {
        _setmode(_fileno(stdout), _O_U16TEXT);
        wcout<<L"\u2876\u2877\u2878"<<endl;
        return 0;
    }
    

    输出(截图):

    Screenshot of functional Braille output

    注意:我选择的字体没有很好地显示ASCII,所以我不推荐它,但盲文很好。