pyてよn日記

一寸先は闇が人生

競プロ覚書:標準出力のパディング

 C++ の標準出力において,220022のようにパディング(ゼロ埋めや空白埋め)する方法をまとめました.競プロではほとんど使う場面はないですが,たまに出てきたときにこの記事のコードを貼り付ければ良いようにしておきます.パディングが必要な問題も 1 問ですが紹介しています.

標準出力のパディング


 必要なヘッダファイルは,iosiomanip の二つ.下記のコードに,パディングをシンプルにするためのマクロと例を載せておいたので,細かく説明するよりコードを見た方が早いだろう.

Padding with STL, "ios", "iomanip" on C++.

出力

33
33
0033
5555
005555
0000005555
5555
05555
0000005555

AtCoder:パディングを使う問題


補足:STL を使わないでパディングを使う方法


 STL を使わなくてもパディングを行うことはできる.上記の問題の解説にも書かれているが,

  1. 数字を文字列に変換.
  2. 文字数がパディングしたい桁数になるまで,ゼロや空白文字を結合する.

という方法でパディングすることができる.ただ実装が面倒かつ汎用性がないため STL を使った方法を覚えておいた方が良い気はする.そこらへんは好みでどうぞ.

参考