• ベストアンサー

unsigned long long 型のフォーマット指定子

unsigned long long 型の変数の値を表示したいのですが、 フォーマット指定子は%ldですか? よろしくおねがいします。

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

  • ベストアンサー
  • jacta
  • ベストアンサー率26% (845/3158)
回答No.2

規格上は、%llu のように ll を付けます。(unsigned long longなので、%lld ではなく %llu です。) ただし、C99に準拠した処理系ではなく、単に独自拡張としてlong long型をサポートしている場合には、%Lu とか %qu とかになる場合もあります。場合によっては、long long型が存在する処理系でも、printf系関数で正しく書式化する方法が存在しないこともあり得ます。

psychesine
質問者

お礼

ありがとうございます %lluで出来ました!

その他の回答 (2)

  • Oh-Orange
  • ベストアンサー率63% (854/1345)
回答No.3

★アドバイス ・C99 の規格上では long long 型が『%lld』で unsigned long long 型が『%llu』です。  でもコンパイラによっては利用できなかったり、『%I64d』、『%I64u』で同等の機能を  用意していることがあります。 ・VC++2003.NET では『%lld』、『%llu』は使えないようです。  その代わりに『%I64d』、『%I64u』、『%I64o』、『%I64x』などが用意されています。  『I64』が 64 ビットを表しているようで他にも『I32』の 32 ビット版もあります。 ・使用例としては  unsigned long long a = 0x0123456789ABCDEF;    printf( "a = %I64u\n", a );  printf( "a = 0x%016I64X\n", a );  ↑  こんな感じになります。 ・使っているコンパイラが分からないため参考程度にして下さい。 ・以上。

psychesine
質問者

お礼

ありがとうございます %lluで出来ました!

回答No.1

マニュアルは読みましたか? # VC++8では %llu でした。

psychesine
質問者

お礼

ありがとうございます

関連するQ&A