Использование директивы iomanip

Я знаю, как установить ширину поля, но только для первого элемента в потоке. Например.

cout << setw(5) << left << '1' << '2';

производит

1     2

и

cout << setw(5) << left << '1' << '2' << '3';

производит

1     23

Как я могу использовать библиотеку iomanip для установки ширины поля, чтобы она применялась ко всем элементам, создающим

1     2     3

вместо того, чтобы писать setw(5) дважды, как показано ниже:

cout << setw(5) << left << '1' << setw(5) << left << '2' << '3';

person Amber Roxanna    schedule 30.08.2013    source источник
comment
может быть, cplusplus.com/reference/ios/ios_base/width? просто предположение.   -  person typ1232    schedule 30.08.2013
comment
Это как минимум 3 способа сделать это, link   -  person cpp    schedule 30.08.2013


Ответы (1)


К сожалению нет. Вы должны использовать setw() почти перед каждой операцией вывода. Проблема в том, что operator<< фактически вызывает setw(0) после вывода, поэтому вам нужно снова установить ширину. См. здесь полный список операций, которые сбрасывают ширину поля.

Примечание. setw — это всего лишь обертка вокруг width(), поэтому использование последнего выиграло не помогает.

person Community    schedule 30.08.2013