gpt4 book ai didi

c - 如何在 C Win32 控制台应用程序中打印卡片套装字符?

转载 作者:行者123 更新时间:2023-11-30 14:53:23 25 4
gpt4 key购买 nike

我看到了一些关于如何打印这些字符的问题,但这些方法似乎都不起作用。我怀疑这是因为我根据我读到的一些评论制作了一个 Win32 控制台应用程序。这是我当前在代码中尝试过的示例。它只打印问号框,或者如果我改变它,我会得到问号或随机符号。

我尝试在顶部定义这些。

#define SPADE '\x06'
#define CLUB '\x05'
#define HEART '\x03'
#define DIAMOND '\x04'

在函数内部,这些是我尝试过的一些事情。我已经离开了 S、D、H、C,以防我无法弄清楚。

    printf("%lc", SPADE);
//printf("♠");
//printf("S");

printf("%lc", HEART);
//printf("♥");
//printf("H");

printf("%lc", DIAMOND);
//printf("♦");
//printf("D");

printf("%lc", CLUB);
//printf("♣");
//printf("C");

最佳答案

Windows 中需要

UTF-16 wchar_t 和宽字符函数。

#include <windows.h> 

int main()
{
DWORD n;
HANDLE hout = GetStdHandle(STD_OUTPUT_HANDLE);
const wchar_t *buf = L"♠♥♦♣\n";
WriteConsoleW(hout, buf, wcslen(buf), &n, 0);
return 0;
}

以下代码将使用 Visual Studio 进行编译:

#include <stdio.h>
#include <io.h> //for _setmode
#include <fcntl.h> //for _O_U16TEXT

int main()
{
_setmode(_fileno(stdout), _O_U16TEXT);
wprintf(L"♠♥♦♣\n");
return 0;
}

将模式设置为UTF-16后,如果您想再次使用printf,则必须调用_setmode(_fileno(stdout), _O_TEXT)

关于c - 如何在 C Win32 控制台应用程序中打印卡片套装字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47229429/

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