ホームページ > バックエンド開発 > C++ > 出力演算子を使用して C で先頭のゼロを出力するにはどうすればよいですか?

出力演算子を使用して C で先頭のゼロを出力するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-12-08 16:50:15
オリジナル
143 人が閲覧しました

How to Print Leading Zeros in C   Using Output Operators?

C の出力演算子を使用して先頭のゼロを出力する方法

C では、出力フォーマットの制御を維持することが重要です。これを実現するには、<< のような出力演算子を使用できます。オペレーター。このガイドでは、出力演算子を使用して C で先行ゼロを出力する方法について説明します。これは、 d 形式指定子を使用した printf() 関数と同様です。

これを実現するには、次のコードを検討してください。

std::cout << "ZIP code: " << sprintf("%05d", zipCode) << std::endl;
ログイン後にコピー

このアプローチでは、sprintf() を使用して zipCode を先行ゼロ付きの文字列にフォーマットし、その後 << によって出力されます。オペレーター。ただし、追加の sprintf() 呼び出しがあるため、これは理想的ではありません。

代わりに、C は、より高い柔軟性と制御を提供する IO マニピュレーターを提供します。次のコードはその使用法を示しています。

#include <iostream>
#include <iomanip>

using namespace std;
cout << setw(5) << setfill('0') << zipCode << endl;</p>
<p>setw(5) マニピュレータはフィールド幅を 5 文字に設定し、zipCode と先頭のゼロのための十分なスペースを確保します。 setfill('0') マニピュレータは、フィールドの埋め込みに使用される塗りつぶし文字を '0' として指定します。</p>
<p>あるいは、fmt ライブラリを使用することもできます。これにより、書式設定が簡素化され、より表現力が高まります。 </p>
<pre class="brush:php;toolbar:false">cout << fmt::format("{0:05d}", zipCode);
ログイン後にコピー

さらに、C 20 では std::format 関数が導入され、fmt と同様の機能が提供されます。 library.

ただし、これらの IO 操作は cout オブジェクトのグローバルな状態に影響を与えるため、操作を元に戻さない限り、その後の cout の使用が影響を受けることに注意することが重要です。

以上が出力演算子を使用して C で先頭のゼロを出力するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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