gpt4 book ai didi

c++ - 在 C++ 中打印国际象棋 unicode 字符,并使字符大小为正方形

转载 作者:行者123 更新时间:2023-11-30 05:34:43 24 4
gpt4 key购买 nike

我想问一下在 C++ 的控制台窗口中编写国际象棋 unicode 字符的最简单方法是什么? (♙♘♗♖♕♔♟♞♝♜♛♚) 它们是 unicode 中“杂项符号” block 的一部分。 https://en.wikipedia.org/wiki/Chess_symbols_in_Unicode

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

能在棋盘下用普通的非方 block 字写字也不错,但那未必可以?要在同一个控制台窗口中混合使用不同的字体/格式?

好的,先谢谢了! :)

最佳答案

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

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);

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

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

现在,如果您有包含这些字符的控制台字体,并且如果该字体是等宽字体,那么您可以通过添加一些间距来绘制方板人物之间。您可以使用像 U+258C — LEFT HALF BLOCK 这样的 block 元素来绘制棋盘:▌♘▐█▌ ▐

关于c++ - 在 C++ 中打印国际象棋 unicode 字符,并使字符大小为正方形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34123004/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com