基本上,我必须生成一副牌,显示西装和价值,如“七心”。我必须使用常量字符串数组,我还必须以某种方式将卡的等级和套装编码为单个整数值。所以我试着将套装和值放在单独的字符串中,然后将它们放在另一个字符串中,但它似乎不起作用。我在“<<”之下得到了红线。
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];
我不明白这有什么问题。
答案 0 :(得分: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种组合。
我希望我理解你的要求。
你绝对不需要额外的循环。
答案 1 :(得分:2)
尝试:
deck[i] = cards[j] + " of " + suits[i]
<<
运算符适用于流,而不是字符串。我们将字符串与+
连接起来。
修改:有关<<
的更多信息。 <<
是一个运算符,(例如+
,-
,*
等),与所有运算符一样,它需要一个l值(左边的值) )和一个r值(在它的右边)。所以a = << b
将不起作用,因为你错过了运营商的l值。