• ベストアンサー

printf("%2.d",0);は?

printf("%2.d",0); を表示すると何も表示されません・・。 どうしたらいいのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • chie65536
  • ベストアンサー率41% (2512/6032)
回答No.1

「%2.d」は「%2.0d」と同じです。 つまり「2文字の幅で、少なくとも0ケタの数字を書け」です。 この「少なくとも0ケタの数字を書け」は、言い替えれば「先頭にあるゼロは、全体が0ケタになるまで削ってよし」と言う意味です。 結果「_0」('_'は半角スペースの意味)の先頭のゼロを0ケタになるまで削るので「__」になります。 ゼロの時に「_0」と表示したいなら「%2d」と指定しましょう。

その他の回答 (2)

  • ryoukun
  • ベストアンサー率38% (16/42)
回答No.3

ごめんなさい。 #2の者です。 訂正します。 「%2.1d」では、「_0」でしたね。 一桁の「0」にするには、「%d」でした。

  • ryoukun
  • ベストアンサー率38% (16/42)
回答No.2

> どうしたらいいのでしょうか? って、おかしいでしょ! どうしたいか、書かなきゃ。 #1の方の回答で足りていれば良いのですが、 ゼロの時には一桁の「0」としたいなら「%2.1d」 (「%d」でも良いような気もする)

関連するQ&A