我想列出来自0000-9999的所有号码,但是我无法保持零位。
我试过了:
for(int i = 0; i <= 9999; ++i)
{
cout << i << "\n";
}
但我得到:1,2,3,4..ect 我该如何制作0001,0002,0003 .... 0010等
答案 0 :(得分:11)
您的案例如下:
for(int i = 0; i <= 9999; ++i)
{
cout << setfill('0') << setw(4) << i << "\n";
}
答案 1 :(得分:2)
你只需要设置一些标志:
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
cout << setfill('0');
for(int i = 999; i >= 0; --i)
{
cout << setw(4) << i << "\n";
}
return 0;
}
答案 2 :(得分:2)
使用ios_base::width()
和ios::fill()
:
cout.width(5);
cout.fill('0');
cout << i << endl;
或者,使用IO操纵器:
#include<iomanip>
// ...
cout << setw(5) << setfill('0') << i << endl;
答案 3 :(得分:0)
虽然不是必需的,但是如果你想知道如何用C做这个,这里有一个例子:
for (int i = 0; i <= 9999; i++)
printf("%04d\n", i);
此处,“%04d”中的“0”与setfill('0')
的作用相同,“4”的作用类似于setw(4)
。