Я написал следующий код для генерации символов Unicode для мастей карт в C. Он работает нормально, и мне не нужно менять семейство шрифтов или кодовую страницу консоли (я использую Windows 10 и Dev-C ++), но мне кажется, что я могу сгенерировать только эти символы. Действительно, если я попробую другие значения для генерации других символов, например, для шахмат, игральных костей, домино или других, как показано здесь символы Unicode для игр , этот код не будет работать. Зачем? Заранее благодарим вас за помощь.
#include <stdio.h>
#include <fcntl.h>
#define SPADE L"\u2660"
#define CLUB L"\u2663"
#define HEART L"\u2665"
#define DIAMOND L"\u2666"
enum SUIT {spade = 1, club, heart, diamond};
void printSuit(int suitToSelect) {
_setmode(_fileno(stdout), _O_U16TEXT);
switch (suitToSelect) {
case spade:
wprintf(SPADE);
break;
case club:
wprintf(CLUB);
break;
case heart:
wprintf(HEART);
break;
case diamond:
wprintf(DIAMOND);
break;
}
_setmode(_fileno(stdout), _O_TEXT);
}
int main(void)
{
printSuit(spade);
printSuit(heart);
printSuit(club);
printSuit(diamond);
printf("\n");
printf("Normal text\n");
return 0;
}