サンプルコード
#include <iostream>
#include <iomanip> // 各種マニピュレータを使用可能にするため
using namespace std;
ostream& myhex(ostream& ostr) {
return ostr << setw(2) << setfill('0') << hex << uppercase;
}
int main() {
char ch = 'A';
// マニピュレータには効果が永続するものが含まれます
ios::fmtflags flags = cout.flags(); // 現在の設定を保存しておきましょう
char fill = cout.fill(); // fillの値だけはflagsで取得できないため別途保存します
// 各種マニピュレータで設定を変更
cout << setw(2) // 出力の最小桁数
<< setfill('0') // 最小桁数に満たない場合に埋める文字
<< hex // 数値は16進数で表示
<< uppercase // 16進数のA-Fを大文字で表示
<< (int)(unsigned char)ch //=> 41
<< endl; // 改行してフラッシュ (書き出す) ←実はendlもマニピュレータ
// としても同じです
cout << myhex << (int)(unsigned char)ch << endl; //=> 41
// 設定値を戻す
cout << setiosflags(flags) << setfill(fill);
// cout.flags(flags);
// cout.fill(fill); // としても同じです
return 0;
}