1

我想得到一年的最后两位数字。例如,如果我从输入值“2012”开始,我想生成一个输出值“12”。

他们是否有任何选项fprintf只打印最后两位数字?

4

2 回答 2

6

只需打印模 100 的数字:

printf("%2d\n", 2012 % 100);

将打印12

于 2013-05-22T17:37:45.010 回答
2

Steve314 的想法(现已删除)很好,但没有正确呈现。示例:如果年份是 2009 年,使用 "%2d" 获取 "09" 是不正确的。“%2d”将为您提供“9”。“%02d”会得到“09”。

printf("%02d\n", year % 100);

负数也有问题。%d, %2d, %02d for (-99) 都将产生 3 个字符的答案。如果已知年份是无符号的,建议使用 'u' 而不是 'd'。如果签署的年份可能是负数,则您可能需要针对这种深奥的情况使用额外的代码。

于 2013-05-22T18:50:45.667 回答