我最近的事实,ios_base::width
和/或setw
操纵者必须reset with every item written to the stream咬伤。比这更确切地说与setw()有什么关系?
while(whatever)
{
mystream << std::setw(2) << myval;
}
:
也就是说,你必须这样做
mystream.width(2);
while(whatever)
{
mystream << myval;
}
好,很好。
但没有人知道为什么要这样设计作出决定? 是否有一些我错过的理由,或者这只是标准的黑暗角落?
其他流格式化改性剂(如在联SO问题中提到)是“粘性”,而setw
不是。
参见[哪个了iomanip操纵器 '粘性'?](HTTP:// stackoverflow.com/q/1532640/2778484)。 – chappjc 2014-08-07 18:38:25