-2

基本上,我必须生成一副牌,同时显示花色和价值,如“红心七”。我必须使用常量字符串数组,并且我还必须以某种方式将卡片的等级和花色编码为单个整数值。所以我尝试将花色和值放在单独的字符串中,然后将它们放在另一个字符串中,但它似乎不起作用。我在“<<”下得到红线。

const int numSuit = 4;
const int numCard = 8;

string suits[numSuit] = { "Hearts", "Spades", "Diamonds", "Clubs" };
string cards[numCard] = { "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine" };

for ( int i = 0; i < 4; i++ )
{
    for ( int j = 0; j < 7; j++ )
    {
        for ( int k = 0; k < 32; k++ )
        {
            deck[i] = << cards[j] << " of "  << suits[i];

我不明白这有什么问题。

4

2 回答 2

3

首先,你这里只有 28 张卡。

其次,你为什么要嵌套一个额外的层深?

string deck[28];

const int numSuit = 4;
const int numCard = 8;

string suits[numSuit] = { "Hearts", "Spades", "Diamonds", "Clubs" };
string cards[numCard] = { "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine" };
int index = 0;
for ( int i = 0; i < 4; i++ )
{
    for ( int j = 0; j < 7; j++ )
    {
            deck[index++] = cards[j] + " of " + suits[i];
    }
}

如果您以这种方式运行它,您将能够存储所有 28 种组合。

我希望我明白你在问什么。

你绝对不需要那个额外的循环。

于 2013-11-12T21:58:10.037 回答
2

尝试:

deck[i] = cards[j] + " of " + suits[i]

<<运算符适用于流,而不是字符串。我们将字符串与+.

编辑:更多关于<<<<是一个运算符,(如+, -, *, 等)并且像所有运算符一样,它需要一个左值(它左边的东西)和一个右值(它右边的东西)。所以a = << b不会起作用,因为您缺少运算符的左值。

于 2013-11-12T21:58:28.477 回答