Webサイト工事中です! 閲覧できますが不具合があるかもしれません

旧FRONTL1NE記事 : C++で桁数指定及び0埋め

たとえばC言語でstdio.hを使う場合、printfなどの関数で

#include <stdio.h>

int main(){
    printf("%2d\n", 9);
    printf("%5d\n", 64);
    return 0;
}

こんな感じに書けば結果は

09
00064

といった感じになります。

 

では、これをC++でstdio.hを使用せず、iostreamで書く場合どうすればいいでしょうか?

この場合iomanipを追加でインクルードし、std::setw/setfillを使用することにより実現できます。

#include <iostream>
#include <iomanip>

int main(){
    std::cout << std::setw(2) << std::setfill('0') << 9 << std::endl;
    std::cout << std::setw(5) << std::setfill('0') << 64 << std::endl;
    return 0;
}

こちらの結果も

09
00064

となります。

setwで桁数を指定し、setfillで空白の桁を何で埋めるか指定できます。

 

ちなみにsetfillは同一ストリーム内であれば、省略できるっぽい?
ですが、不具合を避けるためにしっかり指定した方がいいでしょう。

 

江添亮のC++入門

江添亮のC++入門

江添 亮
5,500円(05/17 20:58時点)
Amazonの情報を掲載しています
ロベールのC++入門講座

ロベールのC++入門講座

ロベール
3,929円(05/17 20:58時点)
Amazonの情報を掲載しています
Effective Modern C++ ―C++11/14プログラムを進化させる42項目

Effective Modern C++ ―C++11/14プログラムを進化させる42項目

Scott Meyers
4,180円(05/17 15:51時点)
Amazonの情報を掲載しています
プログラミング言語C++ 第4版

プログラミング言語C++ 第4版

ビャーネ・ストラウストラップ, Bjarne Stroustrup
9,680円(05/17 14:42時点)
Amazonの情報を掲載しています

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

SESSIONS や Tokyo Demo Fest 等のイベントを主催してる人
各種最適化やIT・インフラ・3DCGが好き
◆YouTube: http://youtube.com/@FL1NE_
◆X(Twitter): @FL1NE

コメント

コメントする

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

目次