C++ の標準出力において,22
を 0022
のようにパディング(ゼロ埋めや空白埋め)する方法をまとめました.競プロではほとんど使う場面はないですが,たまに出てきたときにこの記事のコードを貼り付ければ良いようにしておきます.パディングが必要な問題も 1 問ですが紹介しています.
標準出力のパディング
必要なヘッダファイルは,ios
,iomanip
の二つ.下記のコードに,パディングをシンプルにするためのマクロと例を載せておいたので,細かく説明するよりコードを見た方が早いだろう.
Padding with STL, "ios", "iomanip" on C++.
出力
33 33 0033 5555 005555 0000005555 5555 05555 0000005555
AtCoder:パディングを使う問題
補足:STL を使わないでパディングを使う方法
STL を使わなくてもパディングを行うことはできる.上記の問題の解説にも書かれているが,
- 数字を文字列に変換.
- 文字数がパディングしたい桁数になるまで,ゼロや空白文字を結合する.
という方法でパディングすることができる.ただ実装が面倒かつ汎用性がないため STL を使った方法を覚えておいた方が良い気はする.そこらへんは好みでどうぞ.