用C+打印国际象棋unicode字符+;,并将字符设置为方形 我想问一下,C++中控制台窗口中编写象棋Unicode字符最简单的方法是什么?(♙♘♗♖♕♔♟♞♝♜♛♚) 它们是unicode中“杂项符号”块的一部分

用C+打印国际象棋unicode字符+;,并将字符设置为方形 我想问一下,C++中控制台窗口中编写象棋Unicode字符最简单的方法是什么?(♙♘♗♖♕♔♟♞♝♜♛♚) 它们是unicode中“杂项符号”块的一部分,c++,unicode,console,chess,C++,Unicode,Console,Chess,我还想打印正方形大小的字符,现在我的棋盘不是正方形,因为每个字符都是矩形而不是正方形 能够在棋盘下方使用普通非方形字符书写也很好,但这可能是不可能的?在同一控制台窗口中混合不同的字体/格式 好的,提前谢谢!:)您问题的第一部分,输出这些字符取决于平台。Linux控制台通常使用UTF-8,如果是这种情况,您可以将字符编码为UTF-8并将其写入标准输出。在Windows上,您可以使用控制台API(函数): 一个很难解决的警告是,您需要一个包含这些字符的控制台字体 要获取方形单元格,这取决于控制台呈现

我还想打印正方形大小的字符,现在我的棋盘不是正方形,因为每个字符都是矩形而不是正方形

能够在棋盘下方使用普通非方形字符书写也很好,但这可能是不可能的?在同一控制台窗口中混合不同的字体/格式


好的,提前谢谢!:)

您问题的第一部分,输出这些字符取决于平台。Linux控制台通常使用UTF-8,如果是这种情况,您可以将字符编码为UTF-8并将其写入标准输出。在Windows上,您可以使用控制台API(函数):

一个很难解决的警告是,您需要一个包含这些字符的控制台字体

要获取方形单元格,这取决于控制台呈现文本方式的许多细节。如果它使用字体替换,那么文本就有可能不是等距的


现在,如果您有一个包含这些字符的控制台字体,并且该字体是单间距的,那么您可以通过在字符之间添加一些间距来绘制一个方形板。您可以使用块元素,如
U+258C-绘制棋盘的左半块:
▌♘▐█▌ ▐

谢谢您的回答!是的,我在用Windows。关于正方形的尺寸,是的,那可能有用,我会试试!我是一个noob,所以我不知道如何使用控制台API来实现这一点。我试着用谷歌搜索答案,但不幸的是我无法让它工作。。。因此,如果您有一个代码示例,那么获得一个代码示例会很有帮助!:)@user1066278好的,我可以更新我的答案。这些是您应该在问题中输入的详细信息。谢谢:)嗯,我有一个方形字符,所以我可能需要安装一个新的控制台字体。。。无论如何,谢谢你的帮助:)非常常见的问题,把“国际象棋控制台”放在搜索框中。选择与您的操作系统匹配的一个。把它弄成正方形,嗯,别指望了。你需要选择一种具有你想要的字符尺寸的字体。这不能在代码中控制(对于控制台输出)。
HANDLE handle = GetStandardHandle(STD_OUTPUT_HANDLE);
DWORD written = 0;
// explicitly call the wide version (which always accepts UTF-16)
WriteConsoleW(handle, L"\u2658", 1, &written, NULL);