elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Mostrar ceros a la izquierda en un entero en C++
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Mostrar ceros a la izquierda en un entero en C++  (Leído 22,793 veces)
erest0r

Desconectado Desconectado

Mensajes: 147



Ver Perfil
Mostrar ceros a la izquierda en un entero en C++
« en: 6 Septiembre 2013, 06:20 am »

Buenas noches mi problema es que no encuentro como hacer para que un entero muestre n cantidad de ceros (0) a la izquierda, lo mas que he encontrado es de la cabecera <iomanip>, setfill(); setw(); pero setfill() recibe como parametro un char, y queria saber si existia algo parecido como setprecision(); fixed;  pero para el lado izquierdo de los enteros.

Les dejare mi codigo para que vean mejor a que me refiero

Código:
#include <iostream>

using namespace std;

int main( int argc, char* args[] )
{
    int numero, digito[4], temp, i, numerocifrado;
    cout << "Ingrese un numero de 4 digitos: ";
    cin >> numero;

    // Obtenemos cada digito por separado
    digito[0] = numero / 1000;
    digito[1] = ( numero % 1000 ) / 100;
    digito[2] = (( numero % 1000 ) % 100 ) / 10;
    digito[3] = (( numero % 1000 ) % 100 ) % 10;

    // Codificamos cada digito
    digito[0] = ( digito[0] + 7 ) %10;
    digito[1] = ( digito[1] + 7 ) % 10;
    digito[2] = ( digito[2] + 7 ) % 10;
    digito[3] = ( digito[3] + 7 ) % 10;

    // Intercambiamos las posiciones de cada digito

    // El primer digito con el tercero
    temp = digito[0];
    digito[0] = digito[2];
    digito[2] = temp;

    // Y el segundo digito con el cuarto
    temp = digito[1];
    digito[1] = digito[3];
    digito[3] = temp;

    // Pasamos los valores segun la posicion de la variable digito[] a numerocifrado
    numerocifrado = ( digito[0] * 1000 ) + ( digito[1] * 100 ) + ( digito[2] * 10 ) + digito[3];

    // Mostramos el numero cifrado
    cout << "Numero original: " << numero << endl
         << "Numero cifrado:  " << numerocifrado << endl;

   

    cin.get();
return 0;
}


Si introducen el numero 1234, deberia mostrar 0189, pero solo muestra 189, a eso me estoy refiriendo, ¿Como mostrar ese cero a la izquierda faltante?

Muchas gracias.


En línea

Cruzar la calle junto a mucha gente cuando el semáforo sigue en rojo da seguridad y espíritu de equipo... o cruzamos todos o morimos juntos.
eferion


Desconectado Desconectado

Mensajes: 1.248


Ver Perfil
Re: Mostrar ceros a la izquierda en un entero en C++
« Respuesta #1 en: 6 Septiembre 2013, 07:23 am »

El ejemplo que te pongo a continuación debería imprimir 00025

Código
  1. cout << setfill('0') << setw(5) << 25;

* setfill configura el caracter de relleno.
* setw configura la longitud en caracteres de los valores que se pasen a continuación.


En línea

erest0r

Desconectado Desconectado

Mensajes: 147



Ver Perfil
Re: Mostrar ceros a la izquierda en un entero en C++
« Respuesta #2 en: 6 Septiembre 2013, 07:40 am »

De esa forma ya la habia hecho, pense que existia otra solucion, gracias.
En línea

Cruzar la calle junto a mucha gente cuando el semáforo sigue en rojo da seguridad y espíritu de equipo... o cruzamos todos o morimos juntos.
Stereo

Desconectado Desconectado

Mensajes: 25


Ver Perfil
Re: Mostrar ceros a la izquierda en un entero en C++
« Respuesta #3 en: 6 Septiembre 2013, 11:37 am »

También:

Código
  1. printf("%02d", 1);
En línea

eferion


Desconectado Desconectado

Mensajes: 1.248


Ver Perfil
Re: Mostrar ceros a la izquierda en un entero en C++
« Respuesta #4 en: 6 Septiembre 2013, 11:57 am »

También:

Código
  1. printf("%02d", 1);

Eso no es c++
En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.966


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: Mostrar ceros a la izquierda en un entero en C++
« Respuesta #5 en: 6 Septiembre 2013, 12:34 pm »

C++ es un mejor C como indica su nombre y la biblioteca cstdio (propia de C++ y no de C) declara la funcion de estilo C printf.
En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
ecfisa

Desconectado Desconectado

Mensajes: 114


Ver Perfil
Re: Mostrar ceros a la izquierda en un entero en C++
« Respuesta #6 en: 6 Septiembre 2013, 12:36 pm »

Hola erest0r.

Citar
...lo mas que he encontrado es de la cabecera <iomanip>, setfill(); setw(); pero setfill() recibe como parametro un char, y queria saber si existia algo parecido como setprecision(); fixed;  pero para el lado izquierdo de los enteros.

Es que numéricamente no tiene ningún sentido usar ceros a la izquierda. Es decir, si es a efectos de presentación, tratá el valor como una secuencia de caracteres.

Saludos. :)


En línea

eferion


Desconectado Desconectado

Mensajes: 1.248


Ver Perfil
Re: Mostrar ceros a la izquierda en un entero en C++
« Respuesta #7 en: 6 Septiembre 2013, 12:42 pm »

C++ es un mejor C como indica su nombre y la biblioteca cstdio (propia de C++ y no de C) declara la funcion de estilo C printf.

Lo se, pero si estás haciendo prácticas en c++... céntrate en programar c++.

printf, aunque sea algo perfectamente válido en c++, es c.

A mi me ha venido gente diciendo que sabía programar en c++ sólo porque mezclaban algunas instancias de string en código c puro... eso le duela a quien le duela no es programar en c++.
En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.966


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: Mostrar ceros a la izquierda en un entero en C++
« Respuesta #8 en: 6 Septiembre 2013, 13:01 pm »

En fin, cualquier codigo que no compile en C no es C y cualquier codigo que compile en C++ lo es. Guste o no C++ es un lenguaje multiparadigma y muy versatil.
En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
eferion


Desconectado Desconectado

Mensajes: 1.248


Ver Perfil
Re: Mostrar ceros a la izquierda en un entero en C++
« Respuesta #9 en: 6 Septiembre 2013, 13:09 pm »

En fin, cualquier codigo que no compile en C no es C y cualquier codigo que compile en C++ lo es. Guste o no C++ es un lenguaje multiparadigma y muy versatil.

Ya, pero si no aprovechas las características que diferencian c++ de c... estás programando realmente en c.

Código
  1. void main( )
  2. {
  3.  printf ( "Programa en C\n" );
  4. }

Código
  1. void main( )
  2. {
  3.  printf( "Programa en C++\n" );
  4. }

Realmente el segundo ejemplo es programar en c++??? el compilador te generará un ejecutable válido... está claro, pero eso no es c++. El estándar aceptó en su momento todas las librerías de c entre otras cosas para facilitar la migración del código... fuera de eso no tiene sentido porque entonces te encuentras con que es el único estándar que tiene la mitad de su biblioteca con funciones duplicadas.
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Transformar una cadena rellenada con ceros a la izquierda a entero
Programación Visual Basic
merlin 2 2,296 Último mensaje 18 Abril 2007, 08:20 am
por merlin
[DUDA] Contador con ceros a la izquierda
Programación Visual Basic
HJZR4 6 3,834 Último mensaje 20 Octubre 2008, 21:18 pm
por ssccaann43 ©
Donde estan los ceros? o.O
Programación Visual Basic
extreme69 8 3,622 Último mensaje 1 Noviembre 2011, 05:00 am
por extreme69
Enteros con ceros al inicio AYUDA
Programación C/C++
cesarjgrd.18 6 2,981 Último mensaje 7 Noviembre 2011, 02:17 am
por BlackZeroX
Como no mostrar ceros y signos negativos en funcion
.NET (C#, VB.NET, ASP)
luis456 5 3,338 Último mensaje 2 Julio 2014, 06:08 am
por luis456
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines