【发布时间】:2014-02-08 00:50:15
【问题描述】:
我已经看过这个thread,但如果我使用 setfill('0'),它不会考虑使用负数。
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
//Code
int num1;
cin >> num1;
cout << setw(5) << setfill( '0' ) << num1 << endl;
return 0;
}
使用此方法,如果我输入“5”,它将显示为“00005”。 但是如果我输入 -5 它将显示为“000-5”
我怎样才能修复它以使输出为“-0005”?
【问题讨论】:
-
这就是为什么我仍然更喜欢 printf() 掩码格式。 %05d 只是做正确的事。
-
@epx 无论出于何种原因,一旦您将变量的类型更改为
short,您的版本就会损坏。但是,由于 C++11 可以实现类型安全的替代方案,例如 this library
标签: c++ precision cout iomanip