Использование манипулятора showbase в C++ для изменения представления числового вывода

В C++ манипулятор showbaseиспользуется для изменения поведения выходного потока при печати числовых значений с базовыми префиксами. Это влияет на способ отображения числовых значений, особенно на такие префиксы, как «0x» для шестнадцатеричных чисел и «0» для восьмеричных чисел.

Когда установлен showbase, он добавляет соответствующий базовый префикс к выходному представлению числового значения. Вот несколько способов использования showbaseв C++:

  1. Метод 1: использование std::showbaseс std::cout:

    #include <iostream>
    using namespace std;
    int main() {
    int decimal = 10;
    int octal = 010;
    int hexadecimal = 0x10;
    cout << showbase;
    cout << "Decimal: " << decimal << endl;
    cout << "Octal: " << octal << endl;
    cout << "Hexadecimal: " << hexadecimal << endl;
    return 0;
    }
  2. Метод 2: использование std::ios_base::showbaseс std::cout:

    #include <iostream>
    using namespace std;
    int main() {
    int decimal = 10;
    int octal = 010;
    int hexadecimal = 0x10;
    cout.setf(ios_base::showbase);
    cout << "Decimal: " << decimal << endl;
    cout << "Octal: " << octal << endl;
    cout << "Hexadecimal: " << hexadecimal << endl;
    return 0;
    }

Эти методы дадут следующий результат:

Decimal: 10
Octal: 010
Hexadecimal: 0x10