5

iomanipを使用して、フロートの精度フラグを設定できることを理解しています(たとえば、2.00ではなく2.0000を使用します)。

整数の場合、これを行う方法はありますか?

16進数をe8a00ではなく000e8a00、または0ではなく00000000として表示したいのですが。

これは、標準ライブラリを使用してC ++で可能ですか?

4

2 に答える 2

7

マニピュレータ付き:

std::cout << std::setfill('0') << std::setw(8) << std::hex << 0 << std::endl;

マニピュレータなし:

std::cout.fill('0');
std::cout.width(8);
std::cout.setf(std::ios::hex, std::ios::basefield);
std::cout << 42 << std::endl;
于 2010-02-24T15:28:30.230 に答える
5

また、boost :: formatを使用してこれを行うこともできます。これにより、入力を節約できることがよくあります。

std::cout << boost::format("%08x\n") % 0xe8a00;

また、同じフォーマットを行う必要がある場所が複数ある場合は、コードを再利用することもできます。

boost :: format hex08( "%08x");
std :: cout << hex08%0xe8aa << std :: endl;
于 2010-02-24T17:04:16.820 に答える