C 中的粘性操纵器
在 C 编程中,操纵器用于修改流的输出格式。某些操纵器以“粘性”方式运行,这意味着它们的效果一直持续到显式更改为止。
为什么 setw() 不粘性?
std::setw( )是非粘性操纵器的一个示例。这意味着它只影响下一次插入操作。使用 setw() 后,宽度设置将重置为其默认值。
是否有其他操纵器粘性?
除 setw() 之外的所有操纵器都是粘性的。这包括:
之间的差异std::ios_base::width() 和std::setw()
std::setw() 返回一个表示宽度值的对象。该对象可用于设置插入流中的下一个项目的宽度。
std::ios_base::width() 直接设置流的宽度。任何后续插入流的操作都将使用新宽度进行格式化。
在线参考
不幸的是,没有明确的文档明确说明操纵器的粘性行为。但是,可以从 C 标准库文档中推断出该行为。
粘性操纵器示例
以下代码演示了操纵器:
#include <iostream> #include <iomanip> using namespace std; int main() { // Set the precision to 2 decimal places cout << setprecision(2); // Insert a number cout << 3.14 << endl; // Output: 3.14 // The precision is still set to 2 decimal places cout << 1.2345 << endl; // Output: 1.23 }
结论
粘性操纵器是 C 中的一个有用功能,可以帮助控制输出的格式。然而,重要的是要注意他们的行为,以避免意外结果。
以上是哪些 C 流操纵器是粘性的,为什么'setw()”不是?的详细内容。更多信息请关注PHP中文网其他相关文章!