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 に答える