C++ 为什么在C++;是否显示为不设置指定的标志? #包括 #包括 使用名称空间std; int main(){ int x=44; cout

C++ 为什么在C++;是否显示为不设置指定的标志? #包括 #包括 使用名称空间std; int main(){ int x=44; cout,c++,C++,参考,您应该首先清除所有格式标志 在表达式out中使用时> resetiosflags(掩码),清除流输出或输入的所有格式标志 按照遮罩的规定 写这样的东西 #include <iostream> #include <iomanip> using namespace std; int main() { int x = 44; cout << setiosflags(ios::oct) << x; } cout因为您只直接设置一

参考,您应该首先清除所有格式标志

在表达式out中使用时> resetiosflags(掩码),清除流输出或输入的所有格式标志 按照遮罩的规定

写这样的东西

#include <iostream>
#include <iomanip>

using namespace std;

int main() {
    int x = 44;
    cout << setiosflags(ios::oct) << x;
}

cout因为您只直接设置一个标志,而不是设置
std::ios\u base::oct
标志:

cout << std::resetiosflags(std::ios_base::dec) << setiosflags(ios_base::oct) << x;

std::cout如果您看到,例如,您将看到示例首先调用。您尝试过了吗?因为您只设置了一个标志,所以应该使用:
cout我可以参考前面提到的链接,但重置后为什么会起作用?如果它以前是十六进制呢?那么您可以使用std::ios_base::basefield
std::cout << std::oct << x;