Foros del Web » Programación para mayores de 30 ;) » C/C++ »

como dar formato a la salida de cout??

Estas en el tema de como dar formato a la salida de cout?? en el foro de C/C++ en Foros del Web. hola, conozco algo de c y estoy aprendiendo c++ al querer formatear la salida tal como hacia en c me he dado cuenta que desconozco ...
  #1 (permalink)  
Antiguo 03/11/2019, 07:20
 
Fecha de Ingreso: enero-2014
Mensajes: 60
Antigüedad: 5 años, 9 meses
Puntos: 1
Pregunta como dar formato a la salida de cout??

hola, conozco algo de c y estoy aprendiendo c++

al querer formatear la salida tal como hacia en c
me he dado cuenta que desconozco la forma de hacerlo en c++


Código c++:
Ver original
  1. // como poner especificadores de formato en c++
  2.  
  3. #include <iostream>
  4. #include <stdio.h>
  5.  
  6. using namespace std;
  7.  
  8. int main(void){
  9.  
  10.    int num=2;
  11.  
  12.    // como obtener la misma salida de printf de c
  13.    printf("\nel numero %d con ceros es: %04d\n\n", num, num);
  14.    // salida: el numero 2 con ceros es: 0002
  15.  
  16.    // en c++
  17.    cout <<endl<<"el numero "<<num<<" con ceros es: "<< num <<endl<<endl;
  18.    // salida: el numero 2 con ceros es: 2
  19.  
  20.    cin.get();
  21.    return 0;
  22. }


saludos y gracias por vuestro tiempo
  #2 (permalink)  
Antiguo 07/11/2019, 13:36
 
Fecha de Ingreso: abril-2011
Mensajes: 40
Antigüedad: 8 años, 7 meses
Puntos: 5
Respuesta: como dar formato a la salida de cout??

Pues es bastante horrible formatear con cout. Además debes importar alguna que otra librería (iostream y iomanip). En tu ejemplo sería:

Código C++:
Ver original
  1. #include <iostream>
  2. #include <iomanip>
  3. #include <stdio.h>
  4.  
  5. using namespace std;
  6.  
  7. int main()
  8. {
  9.     int num = 2;
  10.    
  11.     cout << setw(4) << setfill('0') << num << endl; // forma horrible
  12.    
  13.     printf("%04d\n", num); // forma bonita
  14.    
  15.     return 0;
  16. }

Con setw(4) fuerzas el output a tener al menos 4 chars, rellenando si fuera necesario con el char '0' (o el que le pases a la función setfill). Recuerda que los chars van con comillas simples.

De todas formas no hay ningún problema con usar printf en C++, es muchísimo más claro y sencillo.

Última edición por prueba230683; 07/11/2019 a las 13:41



La zona horaria es GMT -6. Ahora son las 21:58.