粘性 Iomanip 操纵器
在 C 中,iomanip 操纵器是流修饰符,用于更改输入和输出流的行为或格式。然而,并非所有操纵器的行为方式都相同。有些是临时的,仅影响下一个插入,而另一些是“粘性”的,在明确更改之前一直有效。
为什么 std::setw() 不粘性?
与大多数其他操纵器不同,std::setw() 不会永久改变流的状态。这是因为它被视为格式化操纵器,其中每次插入都需要明确的宽度规范才能正确对齐。默认情况下,每次插入后它都会重置为零,以避免歧义并保持对格式的控制。
粘性操纵器
以下操纵器是粘性的,这意味着它们仍然有效直到被另一个操纵者改变或明确地改变重置:
std::ios_base::width() 与 std::setw()
std::ios_base::width () 是所有流类型的基类 std::ios_base 的成员函数。它返回字段的当前宽度。然而,它并不直接控制字段宽度;必须使用 std::setw() 来设置字段宽度。
在线参考
请参阅 C 标准库文档以获取 iomanip 操纵器和的完整列表他们的行为。它提供了其功能的详细描述和示例。或者,像 cppreference 网站这样的在线资源提供了有关操纵器的完整信息,包括它们的粘性。
以上是为什么有些 C iomanip 操纵器具有粘性,而其他操纵器(如'std::setw()”)则不然?的详细内容。更多信息请关注PHP中文网其他相关文章!