求教cout对象输出8和16进制数,hex和oct在这里无效,请教哪错了

求教cout对象输出8和16进制数,hex和oct在这里无效,请问哪错了?

#include<iostream>
using namespace std;
void main(void){
int i;
int j={0x00};
for(i=0x01;i<=0x64;i+=0x01){
j+=i;
}
cout<<j;
cout<<oct;
cout<<j;
cout<<hex;
system("pause");
}

输出都是10进制,cout<<oct和cout<<hex无效,请问如何将j变量用cout输出16进制和8进制数?
C++

------解决方案--------------------
这个你百度一下就有的。
★参考资料★ http://www.ok2002.com/cc/cc/v.asp?r=a211516103679040 
//C++ cout.setf(ios::oct)八进制输出
------解决方案--------------------
C++ cout.unsetf(ios::oct)取消八进制输出设置,恢复按十进制输出【C++ 格式化输出】

#include<iostream.h>

void main()
{
int a=2002,b=1700,c=1500;
cout.setf(ios::oct);//八进制输出
cout<<a<<' '<<b<<' '<<c<<endl;

cout.unsetf(ios::oct);//取消八进制输出设置,恢复按十进制输出
cout<<a<<' '<<b<<' '<<c<<endl;
}



------解决方案--------------------
十六进制同理。