%ul和%lu C格式说明符之间的区别是什么?

时间:2014-05-25 04:41:18

标签: c format-specifiers

在" C Primer Plus"的示例中,作者使用%ul格式说明符(在scanf和printf中)用于 unsigned long 。当我尝试概括问题时,似乎%ul在我的计算机中出错了。但是使用%lu解决了这个问题。

实际上,我想知道%ul%lu之间的区别,而不是关注问题和代码行。也许我能弄明白什么是错的。

搜索并没有给我一些有用的东西(除了"它们不同")。

感谢任何解释或链接/参考。

1 个答案:

答案 0 :(得分:32)

%lu是正确的,而%ul 不正确

printf格式说明符的格式为%[flags][width][.precision][length]specifier

u说明符,表示“无符号十进制整数”。

l是一个长度修饰符,意思是“长”。

length 修饰符应该在转换说明符之前,这意味着%lu是正确的。