作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我看到了一些关于如何打印这些字符的问题,但这些方法似乎都不起作用。我怀疑这是因为我根据我读到的一些评论制作了一个 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/
我是一名优秀的程序员,十分优秀!