用单个字符填充字符串流

时间:2020-04-10 14:08:53

标签: c++ formatting stringstream

如何创建固定长度的,由单个字符填充的字符串流?

所需的输出:

[xxxxxxxxxx]

我已经尝试过了:

#include <iostream>
#include <iomanip>
using namespace std;

int main () {
  stringstream ss;
  ss << setfill('x') << setw(10);
  cout << "[" << ss.str() << "]\n";

  return 0;
}

输出:

[]

如果在设置宽度和填充后向流中添加任何内容,则会得到填充流,这就是我要寻找的内容:

  ss << setfill('x') << setw(10) << "B";

输出:

[xxxxxxxxxB]

但是我希望一个流仅用 x 填充流。是否有任何方法可以在不添加值的情况下获取填充的流?

2 个答案:

答案 0 :(得分:0)

setwsetfill仅用于设置流的宽度和填充参数,因此

  ss << setfill('x') << setw(10);

不起作用(您什么也不输出)。

您可能想要做类似的事情

  ss << setfill('x') << setw(10) << 'x';

给出

[xxxxxxxxxx]

根据需要。

答案 1 :(得分:0)

您可以像这样使用适当的字符串constructor填充流

ss << std::string(10, 'x');