В python следующая инструкция: print 'a'*5
выводит aaaaa
. Как написать что-то подобное в С++ в сочетании с std::ostream
, чтобы избежать конструкции for
?
Как написать "n" копии символа для ostream, как в python
Ответ 1
Очевидным способом будет fill_n
:
std::fill_n(std::ostream_iterator<char>(std::cout), 5, 'a');
Другой возможностью было бы просто построить строку:
std:cout << std::string(5, 'a');
Ответ 2
Используйте несколько сложных способов: os << setw(n) << setfill(c) << "";
Где n - число char c для записи
Ответ 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";
}