【问题标题】:What's the difference between %ul and %lu C format specifiers?%ul 和 %lu C 格式说明符有什么区别?
【发布时间】:2014-07-14 03:53:00
【问题描述】:

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

其实与其关注问题和代码行,我更想知道%ul%lu的区别。或许我能找出问题所在。

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

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

【问题讨论】:

    标签: c format-specifiers


    【解决方案1】:

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

    printf 格式说明符遵循%[flags][width][.precision][length]specifier 的形式。

    u 是一个说明符,意思是“无符号十进制整数”。

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

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

    【讨论】:

    • %ul 是正确的,但不会像预期的 OP 那样工作。它会打印出最后带有后缀l的数字,因为它只是%ul超出了格式
    猜你喜欢
    • 1970-01-01
    • 2012-06-22
    • 1970-01-01
    • 1970-01-01
    • 2013-07-19
    • 2011-01-15
    • 1970-01-01
    • 2011-03-30
    • 2010-12-25
    相关资源
    最近更新 更多