Отступ абзаца с помощью cout

Учитывая строку неизвестной длины, как вы можете вывести ее с помощью cout, чтобы вся строка отображалась на консоли в виде блока текста с отступом? (так что даже если строка будет перенесена на новую строку, вторая строка будет иметь такой же уровень отступа)

Пример:

cout << "This is a short string that isn't indented." << endl;
cout << /* Indenting Magic */ << "This is a very long string that will wrap to the next line because it is a very long string that will wrap to the next line..." << endl;

И желаемый результат: перейти к следующей строке, потому что это очень длинная строка, которая будет обернута следующая строка ...

Изменить: Домашнее задание, над которым я работаю, выполнено. Назначение не имеет ничего общего с форматированием вывода, как в приведенном выше примере, поэтому мне, вероятно, не следовало включать тег домашнего задания. Это просто для моего собственного понимания.

Я знаю, что могу пересчитывать символы в строке, видеть, когда я дойду до конца строки, а затем выводить новую строку и каждый раз выводить -x- количество пробелов. Мне интересно узнать, есть ли более простой идиоматический способ C ++ для выполнения вышеуказанного.

7
задан Algorithmist 12 March 2011 в 06:07
поделиться