我已经查看了这个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”?
答案 0 :(得分:4)
“填充字符”用于将字段填充到指定的宽度。默认情况下,这些字符会添加到左侧,以便输出 right 对齐。您可以使用std::left
进行左对齐。对于数字,附加选项std::internal
将填充符号与实际数字之间的空格:
cout << setw(5) << setfill('0') << internal << -42 << endl;