1. ホーム
  2. c

[解決済み] C言語の書式指定子 %ul と %lu の違いは何ですか?

2022-03-16 06:21:57

質問

C言語入門プラス」の例で、著者は次のように記述しています。 %ul の書式指定子(scanfとprintfの両方)を使用します。 符号なしロング . この問題を一般化しようとすると、どうやら %ul は、私のコンピュータに何か不具合を生じさせるのです。しかし %lu は問題を解決しました。

実は、問題点やコードの行に注目するよりも、このような問題点を解決するために %ul%lu . 多分、何が間違っているのか分かると思います。

検索しても有用な情報は得られません("they are different"ということ以外は)。

何か説明やリンク・参考資料があればお願いします。

解決方法は?

%lu は正しいが %ul 不正解 .

A printf フォーマット指定子は次のような形式です。 %[flags][width][.precision][length]specifier .

u 指定子 は、符号なし10進整数を意味します。

l 長さ long"を意味するモディファイアです。

その 長さ 修飾子は、変換の前に置く必要があります。 指定子 ということは %lu が正しい。