如何写“N”的字符复制到ostream的像蟒蛇(How to write 'n' c

2019-06-26 05:14发布

在Python中,下面的指令: print 'a'*5将输出aaaaa 。 如何将一个用C编写类似的结合东西++ std::ostream ,以避免A S for结构?

Answer 1:

最显而易见的方法是用fill_n

std::fill_n(std::ostream_iterator<char>(std::cout), 5, 'a');

另一种可能性是是只创建一个字符串:

std:cout << std::string(5, 'a');


Answer 2:

使用一些取巧的办法: os << setw(n) << setfill(c) << ""; 其中,n是写字符的数量c



Answer 3:

您可以通过重载做这样的事情*为的std :: string运营商。 这里是一个小例子

#include<iostream>
#include<string>
std::string operator*(const std::string &c,int n)
{
    std::string str;
    for(int i=0;i<n;i++)
    str+=c;
    return str;
}
int main()
{
    std::string str= "foo";
    std::cout<< str*5 <<"\n";
}


文章来源: How to write 'n' copies of a character to ostream like in python
标签: c++ ostream