在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