我已经尝试过这个
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
将十进制数打印成八进制数呢?
#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);
std::setiosflags
。 - Yksisarvinen只需尝试这个,您的问题将得到解决。 cout << hex << 79; cout << oct << 79;