- ベストアンサー
unsigned long long 型のフォーマット指定子
unsigned long long 型の変数の値を表示したいのですが、 フォーマット指定子は%ldですか? よろしくおねがいします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
規格上は、%llu のように ll を付けます。(unsigned long longなので、%lld ではなく %llu です。) ただし、C99に準拠した処理系ではなく、単に独自拡張としてlong long型をサポートしている場合には、%Lu とか %qu とかになる場合もあります。場合によっては、long long型が存在する処理系でも、printf系関数で正しく書式化する方法が存在しないこともあり得ます。
その他の回答 (2)
- Oh-Orange
- ベストアンサー率63% (854/1345)
★アドバイス ・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 ); ↑ こんな感じになります。 ・使っているコンパイラが分からないため参考程度にして下さい。 ・以上。
お礼
ありがとうございます %lluで出来ました!
- επιστημη(@episteme)
- ベストアンサー率46% (546/1184)
マニュアルは読みましたか? # VC++8では %llu でした。
お礼
ありがとうございます
お礼
ありがとうございます %lluで出来ました!