【发布时间】:2011-08-19 19:31:30
【问题描述】:
我最近被ios_base::width 和/或setw 操纵器必须是reset with every item written to the stream 的事实所困扰。
也就是说,你必须这样做:
while(whatever)
{
mystream << std::setw(2) << myval;
}
而不是这样:
mystream.width(2);
while(whatever)
{
mystream << myval;
}
好的,好的。
但是有谁知道为什么做出这个设计决定? 是否有一些我遗漏的理由,或者这只是标准的一个黑暗角落?
其他流格式修饰符(如链接的 SO 问题中所述)是“粘性”的,而 setw 不是。
【问题讨论】:
标签: c++ c++-standard-library setw