std::cout для печати символа N раз

Как я могу напечатать символ N раз, используя std::cout без цикла?

Есть ли способ переместить текстовый курсор назад, чтобы свести на нет эффект std::cout << std::endl;? т. е. переместиться на строку вверх (скажем, мы ничего не печатали после выполнения операции std::cout << std::endl;).


person shiraz    schedule 25.10.2011    source источник
comment
C: stackoverflow.com/questions /14678948/   -  person Ciro Santilli 新疆再教育营六四事件ۍ    schedule 24.03.2017


Ответы (2)


 std::cout << std::string(100, '*') << std::endl;

Чтобы переместить строку вверх, вы должны прибегнуть к терминальным переходам (при условии, что isatty() указывает, что вы работаете на одном).

person sehe    schedule 25.10.2011
comment
Или не пинать EOL в первую очередь?? - person Mawg says reinstate Monica; 26.10.2011
comment
Правда, я это учитывал. В моей конкретной программе это казалось проще. - person shiraz; 26.10.2011

есть ли способ поддержать наш способ свести на нет эффект cout ‹‹ endl; то есть перейти на строку вверх (скажем, мы никогда ничего не печатали после выполнения операции cout ‹‹ endl;) Большое вам спасибо!

Используйте тернарный оператор (или оператор if, если хотите)... что-то вроде...

void PrintCharNtimes(char chatToPrint; int numTimes)
{
   std::cout << std::string(numTimes, chatToPrint) << (numTimes > 0) ? std::endl : ;
}
person Mawg says reinstate Monica    schedule 25.10.2011