#include <iostream>
#include <iomanip>
using namespace std;
int main() {
int x = 44;
cout << setiosflags(ios::oct) << x;
}
为什么我将输出设为(十进制)44而不是(八进制)54?我怎么能改变这个?
答案 0 :(得分:2)
请参阅documentation,您应首先清除所有格式标志
当在表达式中使用&lt;&lt; resetiosflags(mask)或in&gt;&gt; resetiosflags(mask),清除流中或流出的所有格式标志 由面具指定。
写这样的东西;
cout << std::resetiosflags(std::ios_base::dec) << setiosflags(ios_base::oct) << x;
答案 1 :(得分:0)
由于您仅设置单个标志,直接设置use the std::oct
manipulator,而不设置std::ios_base::oct
标志:
std::cout << std::oct << x;
使用setiosflags
时,还需要使用resetiosflags
清除已经设置的标志。