在C ++中,我可以做什么来格式化输出?

时间:2014-01-29 12:52:18

标签: c++ format output

例如,如果我的输出是: -

King of Spades
Queen of Hearts
Four of Diamonds
Nine of Clubs
Three of Diamonds
Deuce of Spades
Ace of Hearts

然后我该怎么做才能表现出来: -

 King of Spades
Queen of Hearts
 Four of Diamonds
 Nine of Clubs
Three of Diamonds
Deuce of Spades
  Ace of Hearts

我只需要调整of's。有人告诉我setw可以提供帮助。

是吗?是这样吗?如果可以,那怎么样?

2 个答案:

答案 0 :(得分:2)

计算要显示的第一个单词的最大长度,然后用它调用setw。

cout << setw(5) << "Four" << " of " << "Hearts" << endl;
cout << setw(5) << "Queen" << " of " << "Diamonds" << endl;

显然用变量替换硬编码字符串。

答案 1 :(得分:2)

如果您知道最大字段宽度(在这种情况下为5),那么您确实可以使用setw将第一个字填充到该宽度:

#include <iostream>
#include <iomanip>

std::cout << std::setw(5) << card.value << " of " << card.suit << std::endl;

可能会感兴趣other manipulators,例如setfill指定填充填充的字符,leftright指定哪一侧填补领域。