ホームページ > バックエンド開発 > C++ > C ストリームは出力フォーマットのために printf をどのように置き換えることができますか?

C ストリームは出力フォーマットのために printf をどのように置き換えることができますか?

Susan Sarandon
リリース: 2024-12-02 02:56:10
オリジナル
246 人が閲覧しました

How Can C   Streams Replace printf for Output Formatting?

C ストリームによる出力のフォーマット: printf の代替手段

printf とは異なり、C 出力ストリームは、ストリームマニピュレータの使用。 printf(" d", zipCode) と同じ書式設定を実現するには、次のアプローチを使用できます:

std::setw および std::setfill

std::cout << std::setw(5) << std::setfill('0') << zipCode << std::endl;
ログイン後にコピー

std::setw(5) はフィールド幅 5 を指定し、必要に応じて出力の左側にゼロが埋め込まれるようにします。 std::setfill('0') は、余分なスペースを埋める文字として '0' を定義します。

ストリーム マニピュレータの利点

ストリーム マニピュレータを使用すると、いくつかの利点があります。 :

  • 使いやすさ: 簡潔で直感的な操作性を提供します。かさばる printf ステートメントと比較して出力をフォーマットする方法です。
  • 再利用性: マニピュレータを複数回再利用して、基になるストリームに影響を与えることなく出力フォーマットを変更できます。

代替フォーマット オプション

std::iomanip ライブラリは追加の書式設定を提供することに注意してくださいoptions:

  • std::setiosflags(ios::left): 出力を左揃えにします。
  • std::setiosflags(ios::right): 出力を右揃えにします。 .

ネガティブの処理数値

負の数値を処理する必要がある場合は、符号と大きさの間に塗りつぶし文字を配置する std::internal を使用できます。

std::cout << std::internal << std::setw(5) << std::setfill('0') << zipCode << std::endl;
ログイン後にコピー

代替ライブラリ

fmt ライブラリまたは次期 C 20 標準の使用を検討してください。強力な書式設定オプション:

  • fmt::format("{:05d}", zipCode)
  • std::format("{:05d}", zipCode)

これらの代替案は、簡潔で柔軟な書式設定ソリューションを提供します。

以上がC ストリームは出力フォーマットのために printf をどのように置き換えることができますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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