当前位置:  开发笔记 > 编程语言 > 正文

用C解码printf语句(Printf Primer)

如何解决《用C解码printf语句(PrintfPrimer)》经验,为你挑选了2个好方法。

我正在努力将一些旧代码从1998年带到21世纪.该过程的第一步是将printf语句转换为QString变量.不管我多少次回头看看printf,我总是忘记了一件事.所以,为了好玩,让我们一起解码它,为了时间的缘故,并在此过程中为Stackoverflow 创建第一个小'printf primer'.

在代码中,我遇到了这个小宝石,

printf("%4u\t%016.1f\t%04X\t%02X\t%1c\t%1c\t%4s", a, b, c, d, e, f, g);

如何格式化变量a,b,c,d,e,f,g?



1> Jason Day..:

丹尼大多是对的.

一个.无符号十进制,最少4个字符,空格填充
b.浮点,十进制前最小16位(0填充),小数点后
c 1位.十六进制,最少4个字符,0填充,字母以大写字母
d 打印.与上述相同,但最少2个字符
e.e被假定为int,转换为unsigned char并打印
f.与e
g 相同.这可能是一个错字,4没有效果.如果是"%.4s",则将打印字符串中最多4个字符.有趣的是,在这种情况下,字符串不需要以null结尾.

编辑:jj33指出了b和g以上2个错误在这里.



2> jj33..:

@ 杰森·戴,我觉得在最后%4S 4,如果有少于4个字符是显著.如果你有4个以上是正确的,%4s和%s将是相同的,但是在g%s中少于4个字符将被左对齐并且%4s将在4字段字段中右对齐.

b实际上是整个字段的最小16个字符,包括小数和小数点后的单个数字(16个字符总数与18个字符总数)

推荐阅读
郑小蒜9299_941611_G
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有