不废话,直接上结论:cout << setw(n) << setfill('0') << res << endl;
等价于用 printf
的:printf("%0nd\n", res);
其中 n
为希望输出的总宽度。
举个例子:
int res = 123;
cout << setw(5) << setfill('0') << res << endl;
输出:00123
如果用 printf
:
int res = 123;
printf("%05d\n", res);
输出同样的结果。
如果想用空格填充:
int res = 114;
cout << setw(5) << res << endl;
或者:
int res = 514;
printf("%5d\n", res);
在这段代码中,setw(5)
设置输出宽度为 5
。
无需使用 setfill(' ')
,因为空格是默认的填充字符。
同理,不用写成 printf("% 5d\n", res);
。