我试过这个
cout. setf(ios::oct, ios::basefield) ;
cout << 79 << endl;
它可以工作,但使用操纵器 setiosflags
cout << setiosflags (ios::oct) << 79 << endl;
不行,屏幕上还印着79。
虽然我听说setiosflags
是`setf.
那么如何将十进制数打印为八进制数setiosflags
呢?
我试过这个
cout. setf(ios::oct, ios::basefield) ;
cout << 79 << endl;
它可以工作,但使用操纵器 setiosflags
cout << setiosflags (ios::oct) << 79 << endl;
不行,屏幕上还印着79。
虽然我听说setiosflags
是`setf.
那么如何将十进制数打印为八进制数setiosflags
呢?
您需要先使用std::resetiosflags重置标志:
#include <iostream>
#include <iomanip>
int main()
{
int x = 42;
std::cout << std::resetiosflags(std::ios_base::dec)
<< std::setiosflags(std::ios_base::hex | std::ios_base::showbase)
<< x;
}
该| std::ios_base::showbase
部分是可选的。
你也可以使用
printf("%o",79);
试试这个,你的问题就会得到解决。cout << 十六进制 << 79; cout << 八月 << 79;