Ho il seguente problema .... ho bisogno che il codice seguente mi incolonni correttamente gli output indipendentemente dalla loro lunghezza.

codice:
out << nuovo.name << setw(10+(30-nuovo.name.length())) << 
 nuovo.surname << setw(10+(30-nuovo.name.length())+(30-nuovo.surname.length())) << 
 nuovo.address << setw(10+(30-nuovo.name.length())+(30-nuovo.surname.length())+(30-nuovo.address.length()))<< 
 nuovo.city << setw(10+(30-nuovo.city.length())) << 
 nuovo.phone << setw(10+(30-nuovo.phone.length())) << 
 nuovo.num_doc << setw(10+(30-nuovo.num_doc.length())) << 
 nuovo.num_tessera << setw(10+(30-nuovo.num_tessera.length())) << 
 nuovo.date.giorno << "/" << nuovo.date.mese << "/" << nuovo.date.anno << setw(52) << 
 nuovo.credito_tessera << "\n";
Al momento attuale non riesco a trovare un settaggio di SETW che mi permetta di trovare tutti i record incolonnati correttamente .... si accettano consigli