Indenting Paragraph With cout

Dada uma sequência de comprimento desconhecido, como você pode produzi-la usando cout, para que toda a sequência seja exibida como um bloco de texto recuado no console? (para que, mesmo que a sequência seja agrupada em uma nova linha, a segunda linha terá o mesmo nível de indentação)

Exemplo

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;

E a saída desejada:

Esta é uma cadeia curta que não é recuad

    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...

Editar A tarefa de casa em que estou trabalhando está concluída. A tarefa não tem nada a ver com a formatação da saída, como no exemplo acima, então eu provavelmente não deveria ter incluído a tag de lição de casa. Isso é apenas para minha própria iluminação.

Eu sei que posso contar os caracteres da string, ver quando chego ao final de uma linha, cuspir uma nova linha e gerar um número de espaços -x- a cada vez. Estou interessado em saber se existe uma maneira C ++ mais simples e idiomática de realizar o que foi mencionado acim

questionAnswers(5)

yourAnswerToTheQuestion