4

次のコードがあります

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

出力は次のとおりです。

006464

すべての数値を幅 4 にしたい場合は、使用する必要があります

out << setfill('0') << setw(4) << hex << 100 << sew(4) << 100 << std::endl;

しかし、16 進数と setfill('0') を使用してすべての数値を出力したい場合は、setfill('0') と std::hex を 1 回だけ設定する必要があります。

c++ は意図的にこれを設計しますか? その意図は何ですか?

4

1 に答える 1

2

はい、わざとです。ストリーム操作は、標準で指定されたフィールド幅のリセットで内部的に処理されます。理由については、良い答えはないと思います。

于 2015-04-29T08:21:24.460 に答える