3

我已经查看了这个线程,但如果我使用 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”?

4

1 回答 1

5

“填充字符”用于将字段填充到指定宽度。默认情况下,这些字符被添加到左边,这样输出就会对齐。您可以std::left用于对齐。对于数字,附加选项std::internal将填充符号和实际数字之间的空格:

cout << setw(5) << setfill('0') << internal << -42 << endl;

http://ideone.com/Pdsz3M

于 2014-02-08T00:56:05.690 回答