ホームページ > バックエンド開発 > C++ > 一部の C ストリーム マニピュレータが「スティッキー」であり、他のものはそうでないのはなぜですか?

一部の C ストリーム マニピュレータが「スティッキー」であり、他のものはそうでないのはなぜですか?

Barbara Streisand
リリース: 2024-12-11 13:53:11
オリジナル
384 人が閲覧しました

What Makes Some C   Stream Manipulators

「スティッキー」動作を持つマニピュレータ

ストリームの書式設定に C でマニピュレータを利用する場合、特に「スティッキー」に関してマニピュレータの動作を理解することが重要です。 。」この記事では、特定のマニピュレータが「スティッキー」とみなされる理由と、それらの違いとコードへの潜在的な影響について説明します。

std::setw() が異常に処理されるのはなぜですか?

std::setw() はフィールド幅の設定に使用されるマニピュレータであり、その「一時的」さで注目に値します。 行動。他のマニピュレータとは異なり、その効果は後続の挿入に対して永続的ではないため、必要でない限り明示的な調整が必要です。

他のマニピュレータはスティッキーですか?

マニピュレータの大部分は実際にスティッキーを示します。オブジェクトを返すマニピュレータ。

  • setiosflags
  • resetiosflags
  • setbase
  • setfill
  • setprecision

は本質的にスティッキーで、後続のすべての挿入に対してストリームの状態を変更します。

逆に、ストリーム オブジェクト自体を返すマニピュレータは、 like:

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

は永続的とみなされ、変更されるまで有効です。

std::ios_base::width() と std::setw() の区別

std::ios_base:: width() は、ストリームの基本設定を表す std::ios_base クラスのメソッドです。 std::setw() とは異なり、明示的にリセットされるまで持続します。この区別により、幅設定を使用することが多いフォーマットされた出力操作を適切に制御できるようになります。

ドキュメントとリソース

マニピュレータの動作の包括的な概要については、次を参照してください。特定の実装に関するドキュメント。さらに、コミュニティ フォーラムとリソースは、貴重な洞察とコード サンプルを提供します。

以上が一部の C ストリーム マニピュレータが「スティッキー」であり、他のものはそうでないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート