ホームページ > バックエンド開発 > C++ > C で先頭にゼロを付けて出力をフォーマットするにはどうすればよいですか?

C で先頭にゼロを付けて出力をフォーマットするにはどうすればよいですか?

DDD
リリース: 2024-12-04 21:44:15
オリジナル
863 人が閲覧しました

How Can I Format Output with Leading Zeros in C  ?

C で先頭にゼロを付けて出力を書式設定する

C では、特定の方法でデータを表示するには出力の書式設定が重要です。一般的なシナリオの 1 つは、printf が d で処理する方法と同様に、先行ゼロを出力することです。 printf の使用はオプションですが、C ストリーム出力演算子 (<<) を使用することもできます。

先行ゼロを実現する 1 つのオプションは、以下に示すように、sprintf を使用してフォーマットされた文字列を出力演算子と連結することです。 :

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

ただし、IO を使用したよりクリーンなソリューションがありますmanipulators:

#include <iomanip>

using namespace std;

cout << setw(5) << setfill('0') << zipCode << endl;

// or without 'using namespace std;'
std::cout << std::setw(5) << std::setfill('0') << zipCode << std::endl;</p>
<p>setw(width) はフィールド幅を設定し、setfill(char) は残りのスペースを埋めるために使用される文字を指定します。この場合、先頭のゼロを追加するために「0」が使用されます。</p>
<p>これらのマニピュレータは cout オブジェクトのグローバルな状態に影響を与えることに注意してください。後の使用で意図しない影響を避けるには、フラグをリセットして影響を元に戻す必要があります。</p>
<p>簡潔な書式設定を希望する場合は、fmt ライブラリの使用を検討してください。</p>
<pre class="brush:php;toolbar:false">cout << fmt::format("{:05d}", zipCode);
ログイン後にコピー

C 20 以降ではビルドされています。 -in std::format のサポート、C 23 では std::print が導入され、フォーマットされたファイルに対してさらに便利なオプションが提供されます。

郵便番号などの負でない数値の場合は、上記のコードで十分です。ただし、負の数を処理する必要がある場合は、 std::internal を追加して、符号と大きさの間に塗りつぶし文字を配置します:

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

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

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