Инициализация колоды с использованием Юникода

0

Я пытаюсь создать массив колоды карт, содержащий 52 картографических структуры, которые содержат целое число и "pic", который будет представлять собой юникодное представление иска. Я попытался создать постоянный символ для каждого костюма с значениями unicode, но это не совсем работает. Есть ли библиотека Юникода, которую мне нужно получить? вот мой код:

#ifndef CARD_H
#define CARD_H
#include <iostream>
using namespace std;

class Card 
{

private:

struct OneCard
{
    int value;
    char Pic[4];
};

OneCard Cards[52];



public:
Card();

 };

#endif



#include "Card.h"
#include <iostream>
using namespace std;

Card::Card()
{
const char spade[4]="\xe2\x99\xa0";
const char club[4]="\xe2\x99\xa3";
const char heart[4]="\xe2\x99\xa5";
const char diamond[4]="\xe2\x99\xa6";

for (int i = 0; i<13; i++)
{
    Cards[i].value=i+1;
    Cards[i].Pic=spade;
}

for (int i = 13; i<26; i++)
{
    Cards[i].value=i+1;
    Cards[i].Pic=club;
}
for (int i = 26; i<39; i++)
{
    Cards[i].value=i+1;
    Cards[i].Pic=heart;
}
for (int i = 39; i<52; i++)
{
    Cards[i].value=i+1;
    Cards[i].Pic=diamond;
}


}
Теги:
unicode

1 ответ

1

Верхняя граница ваших петель ошибочна. И вы не можете просто назначить массив другому массиву.

Добавьте этот #include <algorithm> и измените код ниже:

for (int i = 0; i<13; i++)
{
    Cards[i].value=i+1;
    std::copy(spade, spade+3, Cards[i].Pic);
}

for (int i = 13; i<26; i++)
{
    Cards[i].value=i+1;
    std::copy(club, club+3, Cards[i].Pic);
}
for (int i = 26; i<39; i++)
{
    Cards[i].value=i+1;
    std::copy(heart, heart+3, Cards[i].Pic);
}
for (int i = 39; i<52; i++)
{
    Cards[i].value=i+1;
    std::copy(diamond, diamond+3, Cards[i].Pic);
}
  • 0
    Спасибо, я пошел и исправил это. Тем не менее, на самом деле не решает мою проблему с Unicode, ха-ха.
  • 0
    @ user2105982 Какая у тебя проблема с юникодом? Опубликовать ошибки или что-то, что вы получили
Показать ещё 8 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню