C++用单位数和双位数排列间距
C++ Lining up spacing with single and double digits
我正在编写一个洗牌程序。我开始工作了,我想在洗牌前和洗牌后展示牌。我在处理数字10时遇到了间距问题。
我知道我可以使用"t"
,但还有其他方法吗。
输出片段:
A of Spades
2 of Spades
3 of Spades
4 of Spades
5 of Spades
6 of Spades
7 of Spades
8 of Spades
9 of Spades
10 of Spades
J of Spades
Q of Spades
K of Spades
我几乎可以肯定是assignDeck()
导致了这个问题,但我将同时包括这两个问题。
void assignDeck(string *suit, string *cards, string *deck)
{
int p=0;
for(int i=0; i<4; i++)
{
for(int j=0; j<13; j++)
{
deck[p] = cards[j] + " of " + suit[i];
p++;
}
}
}
void showDeck(string *deck)
{
for (int i=0; i<52; i++)
{
cout<<deck[i]<<endl;
}
}
由于您将整行输出为一个字符串,因此您可以在将其添加到牌组的同时修改卡串。
void assignDeck(string *suit, string *cards, string *deck)
{
int p=0;
for(int i=0; i<4; i++)
{
for(int j=0; j<13; j++)
{
if ( cards[j].size() < 2 )
cards[j] = " " + cards[j];
deck[p] = cards[j] + " of " + suit[i];
p++;
}
}
}
编辑:这只是为了让您对代码的更改最小。对于一般情况,我建议您在<iomanip>
标头中使用std::setw
函数。
是的,您可以直接使用C++流和
<iomanip>
使用setwidth()和setfill()等
看看Jossutis的例子:
http://books.google.co.uk/books?id=n9VEG2Gp5pkC&pg=PA618&lpg=PA618&dq=josuttis+setwidth&source=bl&ots=Rem8pr98PT&sig=gxyrv39njxNvB1l8fyeLfCMMVfE&hl=en&sa=X&ei=eU6nOqPdM4jE7Abp5IGgDA&ved=0CDIQ6AEwAA#v=一页&q=josuttis%20setwidth&f=错误
相关文章:
- 比较并显示使用最小值(a,b)和最大值(a、b)升序排列的4个数字
- 为什么不;名字在地图上是按顺序排列的吗
- 芬威克树(BIT).找到具有给定累积频率的最小索引,单位为 O(logN)
- C++优先级队列,按对象的唯一指针的特定方法升序排列
- 按对象的特定方法按升序排列的C++优先级队列
- 找到具有最多子串栅栏的字符串排列
- 重新排列单线以形成闭合多边形?
- RcppEigen 模板化函数,用于填充单位法线
- 如何有效地计算将单位立方体映射到自身的反射和旋转?
- 以天C++为单位的两个时间戳之间的差异
- 在数组中输入 n 个整数的列表,并以类似于钟摆来回移动的方式排列它们. 输入-1 3 2 5 4,输出5 3 1 2 4
- 如何以毫秒为单位获取开始时间和 now() 之间的毫秒差异(以 C++为单位?
- 从原始字节解码协议缓冲区(以 C++为单位)
- 输入的 C++ 排列
- ANTLR - 如何从维度扩展单位
- 公共/私有/受保护是否会更改内存中结构的排列?
- 如何在 C/C++ 中生成具有 n 组 5 个值(重复项)的所有可能排列的矩阵
- 以 C++ 为单位具有输出限制的排列
- 有没有一种 STL 方法可以找到字符串的所有排列,给出一个以 C++ 为单位的大小?
- C++用单位数和双位数排列间距