这可能会相当简单,但解决方案目前正在逃避我。这是该计划的简要说明。
程序显示并允许用户随机洗牌,然后以洗牌的形式再次在用户输入上显示它们。目前我的输出只有一行,直到它强迫自己从超过窗口大小开始换行。
我需要做的是创建4个单独的13行卡,我在伪代码中的方式是:
if(deck[12])
cout << endl;
但是我无法访问迭代器的元素,因此它可以在显示13张卡后结束行。这是我的for循环显示卡片:
for (vector<const string*>::const_iterator it=deck.begin(); it!= deck.end(); ++it)
{
cout << (*it)->c_str() << ' ';
}
答案 0 :(得分:2)
单独一个柜台怎么样?
int n = 0;
for (vector<const string*>::const_iterator it=deck.begin(); it!= deck.end(); ++it)
{
cout << (*it)->c_str() << ' ';
if (++n == 13)
{
n = 0;
cout << '\n';
}
}
答案 1 :(得分:2)
你可以这样做 -
if ((it - deck.begin()) % 13 == 0)
{
std::cout << "\n";
}
答案 2 :(得分:0)
你有52张牌,想要用4行13张牌展示它们。这很简单:
for(int line = 0; i&lt; 4; ++ i){ for(int card = 0; card&lt; 13; ++ card) std :: cout&lt;&lt; *它++); std :: cout&lt;&lt; '\ n'; }
其中it
被初始化为指向牌组中的第一张牌。请注意,代码假定存储在卡座中的对象可以直接插入到ostream中。将const string*
更改为string
;你会发现你的生活更简单。