Недавно я был укушен фактом, что ios_base::width
и/или манипулятор setw
должны быть reset с каждым элементом, записанным в поток.
То есть вы должны сделать это:
while(whatever)
{
mystream << std::setw(2) << myval;
}
Вместо этого:
mystream.width(2);
while(whatever)
{
mystream << myval;
}
Хорошо, отлично.
Но кто-нибудь знает, почему было принято это дизайнерское решение? Есть ли какое-то обоснование, которое мне не хватает, или это просто темный угол стандарта?
Другие модификаторы форматирования потока (как указано в связанном вопросе SO) являются "липкими", а setw
- нет.