首页 > 后端开发 > C++ > 是什么使得一些 C Stream 操纵器具有'粘性”,而另一些则不然?

是什么使得一些 C Stream 操纵器具有'粘性”,而另一些则不然?

Barbara Streisand
发布: 2024-12-11 13:53:11
原创
347 人浏览过

What Makes Some C   Stream Manipulators

具有“粘性”行为的操纵器

在 C 中使用操纵器进行流格式化时,理解它们的行为至关重要,尤其是关于“粘性” ”。在本文中,我们将探讨为什么某些操纵器被视为“粘性”,以及它们的差异和对​​代码的潜在影响。

为什么 std::setw() 被异常处理?

std::setw() 是一个用于设置字段宽度的操纵器,以其“瞬态”行为而闻名。与其他操纵器不同,它的效果对于后续插入并不持久,除非需要,否则需要显式调整。

其他操纵器是否具有粘性?

大多数操纵器确实表现出粘性。返回对象的操纵器,例如:

  • setiosflags
  • resetiosflags
  • setbase
  • setfill
  • set precision

本质上是粘性的,修改所有后续插入的流状态。

相反,返回流对象本身的操纵器,例如:

  • boolalpha/noboolalpha
  • showbase/noshowbase
  • showpoint/noshowpoint
  • sho wpos/noshowpos
  • skipws/noskipws
  • unitbuf/nounitbuf
  • 大写/nouppercase

是被认为是永久的,并且在更改之前一直有效。

区分 std::ios_base::width() 和 std::setw()

std::ios_base:: width() 是 std::ios_base 类的方法,它表示流的基本设置。与 std::setw() 不同,它会一直持续到显式重置为止。这种区别确保可以正确控制经常使用宽度设置的格式化输出操作。

文档和资源

有关操纵器行为的全面概述,请参阅您的具体实施的文档。此外,社区论坛和资源提供了宝贵的见解和代码示例。

以上是是什么使得一些 C Stream 操纵器具有'粘性”,而另一些则不然?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板