我正在努力把1998年到21世纪的一些旧代码。该过程中的第一步是将printf语句转换为QString变量。不管我回头看了多少次,我总会忘记一件或另一件事。因此,为了好玩,让我们一起解码它,为了我们的时间,并在这个过程中创建第一个小‘printf引物’的堆栈溢出。
在代码中,我偶然发现了这个小宝石,
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将如何格式化?
发布于 2008-08-11 18:11:45
发布于 2008-08-11 18:19:57
@杰森日,如果少于4个字符,我认为最后的%4s中的4个是显着的。如果超过4个您是对的,%4s和%s将是相同的,但是在g %s中少于4个字符将被左对齐,%4s将在4个字符字段中右对齐。
B实际上是整个字段的最少16个字符,包括十进制数和小数点之后的个位数(我认为是16个字符对18个字符)。
发布于 2008-09-18 00:24:53
这是我的印刷品底漆:specs.html
我总是使用-Wall与gcc一起编译,这将警告所提供的printf格式和变量之间是否有任何不匹配。
https://stackoverflow.com/questions/7981
复制相似问题