操纵器与格式对象
在尝试构造字符串流时,出现了关于 std::setw() 行为的常见误解。假设它会永远影响字符串流是一个错误的假设,因为它在每次插入后都会重置。本文旨在澄清粘性和非粘性操纵器以及格式对象之间的区别,解决以下问题:
粘性操纵器
std::ios_base 中的操纵器可以分为两类:
格式对象
格式对象用于临时更改流的格式属性。与操纵器相反,它们不直接影响流对象。 PutSquareBracket 格式对象就是一个例子,它允许临时修改格式而不影响永久状态。
结论
std::setw() 是唯一的在操纵器中,它是唯一非粘性的。缺乏关于其具体行为的文档可能是由于其与其他操纵器的相似性。然而,现实情况是,由于格式化输出操作中要求显式将宽度设置为零,它的行为有所不同。
以上是std::setw() 和 Stringstreams:粘性操纵器与非粘性操纵器 — 有什么区别?的详细内容。更多信息请关注PHP中文网其他相关文章!