解決したのなら、解決にチェックして送信をお願いします。
ios::oct を setf したいのなら、
ios::dec を unsetf するよりも、
ios::basefield を unsetf して、
ios::dec, ios::hex, ios::oct の全部をリセットしてから
ios::oct を setf しましょう。
この unsetf(ios::basefield) と setf(ios::oct) を
一度に行うのが、setf(ios::oct, ios::basefield) です。
基数の変更は、普通は、cout << oct のように
マニピュレータを使用します。
参考
コード:
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
cout << hex << setfill('0');
cout << setw(4) << ios::skipws << ": skipws\n";
cout << setw(4) << ios::unitbuf << ": unitbuf\n";
cout << setw(4) << ios::uppercase << ": uppercase\n";
cout << setw(4) << ios::showbase << ": showbase\n";
cout << setw(4) << ios::showpoint << ": showpoint\n";
cout << setw(4) << ios::showpos << ": showpos\n";
cout << "--\n";
cout << setw(4) << ios::left << ": left\n";
cout << setw(4) << ios::right << ": right\n";
cout << setw(4) << ios::internal << ": internal\n";
cout << "--\n";
cout << setw(4) << ios::dec << ": dec\n";
cout << setw(4) << ios::oct << ": oct\n";
cout << setw(4) << ios::hex << ": hex\n";
cout << "--\n";
cout << setw(4) << ios::scientific << ": scientific\n";
cout << setw(4) << ios::fixed << ": fixed\n";
cout << "--\n";
cout << setw(4) << ios::boolalpha << ": boolalpha\n";
cout << "==\n";
cout << setw(4) << ios::adjustfield<< ": adjustfield = left | right | internal\n";
cout << setw(4) << ios::basefield << ": basefield = dec | oct | hex\n";
cout << setw(4) << ios::floatfield << ": floatfield = scientific | fixed\n";
cout << "==\n";
cout << setw(4) << cout.flags() << ": flags()\n";
}
VC++の実行結果
コード:
0001: skipws
0002: unitbuf
0004: uppercase
0008: showbase
0010: showpoint
0020: showpos
--
0040: left
0080: right
0100: internal
--
0200: dec
0400: oct
0800: hex
--
1000: scientific
2000: fixed
--
4000: boolalpha
==
01c0: adjustfield = left | right | internal
0e00: basefield = dec | oct | hex
3000: floatfield = scientific | fixed
==
0801: flags()
0000: width()
0006: precition()
g++ の実行結果
コード:
1000: skipws
2000: unitbuf
4000: uppercase
0200: showbase
0400: showpoint
0800: showpos
--
0020: left
0080: right
0010: internal
--
0002: dec
0040: oct
0008: hex
--
0100: scientific
0004: fixed
--
0001: boolalpha
==
00b0: adjustfield = left | right | internal
004a: basefield = dec | oct | hex
0104: floatfield = scientific | fixed
==
1008: flags()