我已经看过这个 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”?
最佳答案
“填充字符”用于将字段填充到指定的宽度。默认情况下,这些字符被添加到左侧,这样输出将右对齐。您可以使用 std::left
进行左 对齐。对于数字,附加选项 std::internal
将填充符号和实际数字之间的空格:
cout << setw(5) << setfill('0') << internal << -42 << endl;
关于c++ - 设置小数点前数字的精度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21640400/