Espacios de nombres
Variantes
Acciones

std::dec, std::hex, std::oct

De cppreference.com
< cpp‎ | io‎ | manip
 
 
Biblioteca de E/S
Manipuladores de E/S
E/S estilo C
Búferes
(en desuso en C++98)
Flujos
Abstracciones
E/S de archivos
E/S de cadenas
E/S de arrays
(en desuso en C++98)
(en desuso en C++98)
(en desuso en C++98)
Salida sincronizada
Tipos
Interfaz de categoría de error
(C++11)
 
Manipuladores de E/S
Formateo de punto flotante
Formateo de enteros
dechexoct
Formateo de booleanos
Control de ancho de campo y relleno
Otro formateo
Procesamiento de espacio en blanco
Vaciado de salida
(C++20)  

Manipulación de indicadores de estado
E/S de tiempo y dinero
(C++11)
(C++11)
(C++11)
(C++11)
Manipulación entre comillas
(C++14)
 
Definido en el archivo de encabezado <ios>
(1)
(2)
(3)

Modifica la base numérica por defecto para E/S de enteros.

1) Establece el basefield del flujo str a dec como si llamara a str.setf(std::ios_base::dec, std::ios_base::basefield).
2) Establece el basefield del flujo str a hex como si llamara a str.setf(std::ios_base::hex, std::ios_base::basefield).
3) Establece el basefield del flujo str a oct como si llamara a str.setf(std::ios_base::oct, std::ios_base::basefield).

Este es un manipulador E/S. Se lo puede llamar con una expresión como out << std::hex para cualquier out de tipo std::basic_ostream o con una expresión como in >> std::hex para cualquier in de tipo std::basic_istream.

Contenido

[editar] Parámetros

str - Referencia al flujo de E/S.

[editar] Valor de retorno

str (Referencia al flujo de E/S después de la manipulación).

[editar] Ejemplo

#include <bitset>
#include <iostream>
#include <sstream>
 
int main()
{
    std::cout << "El número 42 en octal:   " << std::oct << 42 << '\n'
              << "El número 42 en decimal: " << std::dec << 42 << '\n'
              << "El número 42 en hex:     " << std::hex << 42 << '\n';
    int n;
    std::istringstream("2A") >> std::hex >> n;
    std::cout << std::dec << "Analizando \"2A\" como hex da " << n << '\n';
    // la base de salida se consserva hasta que se cambie
    std::cout << std::hex << "42 como hex da " << 42
        << " y 21 como hex da " << 21 << '\n';
 
    // Nota: no existe ningún manipulador E/S que configure un flujo para imprimir
    // números en formato binario (por ejemplo, bin). Si es necesaria una salida binaria,
    // se puede utilizar el truco std::bitset:
    std::cout << "El número 42 en binario:  " << std::bitset<8>{42} << '\n';
}

Salida:

El número 42 en octal:   52
El número 42 en decimal: 42
El número 42 en hex:     2a
Analizando "2A" como hex da 42
42 como hex da 2a y 21 como hex da 15
El número 42 en binario:  00101010

[editar] Véase también

Cambia la base usada para E/S de enteros.
(función) [editar]
Controla si se utiliza prefijo para indicar base numérica.
(función) [editar]