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 サイトの他の関連記事を参照してください。