我试图为strftime提供不在列表中的修饰符%k,它打印11,当我提供不在其列表中的修饰符时,strftime会做什么?
答案 0 :(得分:1)
来自strftime
的C标准:
6如果转换说明符不是上述之一,则行为为 未定义。
你可以看到strftime的list of format specifiers。所以你得到的是未定义的行为。
请参阅有关%k
的manual%k 小时(24小时制)作为十进制数(范围0到23); 单个数字前面有空格。 (另见%H。)(TZ)
答案 1 :(得分:1)
%k
- 小时数作为十进制数,使用像%H
这样的24小时制,但填充空白(范围0到23)。
但是这种格式是GNU扩展。 See here listed specifiers
如果使用未列出的说明符,代码将exbhit 未定义的行为。