使用带有填充零的printf顺序打印数字
在C ++中,使用printf我想打印一个数字序列,所以我得到了一个“for”循环;
1 2 ... 9 10 11
我从这些数字创建文件。 但是当我用“ls”列出它们时,我得到了
10 11 1 2 ..
所以我不想用bash来解决这个问题,我想知道怎么打印;
0001 0002 ... 0009 0010 0011
等等
谢谢
i = 45; printf("%04i", i);
=>
0045
基本上,0告诉printf填充’0’,4是数字计数,’i’是整数的占位符(你也可以使用’d’)。
有关格式占位符,请参阅Wikipedia 。
printf("%04d\n", Num);
应该管用。 看一下printf手册页 。
printf("%04d", n);
如果您使用的是C ++,那么为什么要使用printf()
?
使用cout
来完成你的工作。
#include #include using namespace std; int main(int argc, char *argv[]) { for(int i=0; i < 15; i++) { cout << setfill('0') << setw(4) << i << endl; } return 0; }
这就是你的输出看起来的样子:
0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 0011 0012 0013 0014
C ++来救援!
printf("%4.4d\n", num);
本文解释了您要做的事情
它被称为“带有前导零的填充”
您使用%04d作为整数的格式字符串。
简单案例:
for(int i = 0; i != 13; ++i) printf("%*d", 2, i)
为什么“%* d”? 因为您不想硬编码前导数字的数量; 它取决于列表中的最大数字。 使用IOStreams, setw(int)
具有相同的灵活性