在C ++中,使用printf我想打印一个数字序列,所以我得到了一个“for”循环;
1
2
...
9
10
11
我从这些数字创建文件。但是当我用“ls”列出它们时,我得到了
10
11
1
2
..
因此,我不想尝试使用bash解决问题,我想知道如何打印;
0001
0002
...
0009
0010
0011
等等
由于
答案 0 :(得分:10)
i = 45;
printf("%04i", i);
=>
0045
基本上,0告诉printf填充'0',4是数字计数,'i'是整数的占位符(你也可以使用'd')。
有关格式占位符的信息,请参阅Wikipedia。
答案 1 :(得分:5)
printf("%04d\n", Num);
应该有效。看看the printf man page。
答案 2 :(得分:4)
printf("%04d", n);
答案 3 :(得分:3)
如果您使用的是C ++,那么为什么使用printf()
?
使用cout
来完成工作。
#include <iostream>
#include <iomanip>
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 ++救援!
答案 4 :(得分:1)
printf("%4.4d\n", num);
答案 5 :(得分:0)
This article explain what you're trying to do
它被称为“带有前导零的填充”
答案 6 :(得分:0)
您使用%04d作为整数的格式字符串。
答案 7 :(得分:0)
简单案例:
for(int i = 0; i != 13; ++i)
printf("%*d", 2, i)
为什么选择“%* d”?因为您不想硬编码前导数字的数量;它取决于列表中的最大数字。使用IOStreams,您在setw(int)