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

Ayudapara ingresat una cantidad de digitos

Estas en el tema de Ayudapara ingresat una cantidad de digitos en el foro de C/C++ en Foros del Web. Estoy haciendo un ejercicio donde uno de los items me pide que lea por teclado una cuenta de 20 digitos. Pero no estoy segura de ...
  #1 (permalink)  
Antiguo 31/03/2011, 07:27
Avatar de Geekne  
Fecha de Ingreso: marzo-2011
Ubicación: Donde estoy? Washing you.
Mensajes: 30
Antigüedad: 13 años
Puntos: 0
Ayudapara ingresat una cantidad de digitos

Estoy haciendo un ejercicio donde uno de los items me pide que lea por teclado una cuenta de 20 digitos. Pero no estoy segura de como es. Lo que hice fue esto:

tn=20 y tmn es un vector [20]
Código C:
Ver original
  1. printf("\nIngrese el nro. de Cuenta (20digitos) : ");
  2.        
  3.     for(i=0;i<=tn;i++){
  4.         scanf("%d", &tmn[i]);
  5.     }

Pero no me sirve, porque el user tiene que presionar enter cada que ingrese un num. /: como seria la estructura correcta?
__________________
Software libre rocks lml
  #2 (permalink)  
Antiguo 31/03/2011, 08:27
Avatar de Heimish2000  
Fecha de Ingreso: enero-2011
Ubicación: Madrid
Mensajes: 844
Antigüedad: 13 años, 2 meses
Puntos: 89
Respuesta: Ayudapara ingresat una cantidad de digitos

Guardalo en un string y listo.
  #3 (permalink)  
Antiguo 31/03/2011, 11:35
Avatar de Geekne  
Fecha de Ingreso: marzo-2011
Ubicación: Donde estoy? Washing you.
Mensajes: 30
Antigüedad: 13 años
Puntos: 0
Respuesta: Ayudapara ingresat una cantidad de digitos

Gracias por el dado, me funciono :') Pero aun tengo la duda de como hacer para que sean 20 digitos exactos, como podria hacer?
__________________
Software libre rocks lml
  #4 (permalink)  
Antiguo 31/03/2011, 11:58
 
Fecha de Ingreso: junio-2005
Mensajes: 93
Antigüedad: 18 años, 10 meses
Puntos: 9
Respuesta: Ayudapara ingresat una cantidad de digitos

A que te refieres con 20 digitos exactos?, que siempre sea 20 digitos o que no se puedan introducir mas de 20 digitos?
  #5 (permalink)  
Antiguo 31/03/2011, 12:20
Avatar de Geekne  
Fecha de Ingreso: marzo-2011
Ubicación: Donde estoy? Washing you.
Mensajes: 30
Antigüedad: 13 años
Puntos: 0
Respuesta: Ayudapara ingresat una cantidad de digitos

La cantidad de digitos tiene que ser siempre 20. ni mas ni menos!
__________________
Software libre rocks lml
  #6 (permalink)  
Antiguo 31/03/2011, 12:43
 
Fecha de Ingreso: junio-2005
Mensajes: 93
Antigüedad: 18 años, 10 meses
Puntos: 9
Respuesta: Ayudapara ingresat una cantidad de digitos

strlen, es una función que te sirve para calcular la longitud de una cadena

http://www.cplusplus.com/reference/c...string/strlen/

si lo que quieres es la posiblidad de rellenar con ceros, a la izq cada vez que se intrusca un numero con meno de 20 digitos

puedes utilizar la función sprintf de la siguiente forma

(cadena20dig, "%020", cadenaOrig);

http://www.cplusplus.com/reference/c...stdio/sprintf/

o si lo que quieres es que no pueda introducir un número con menos de 20 digitos entoces puedes hacerlo asi:

char cadena[21]="";

printf("introduce un numero con 20 dígitos");

while(strlen(cadena)<20)
{
scanf("%s", cadena);
}
  #7 (permalink)  
Antiguo 31/03/2011, 13:11
Avatar de Geekne  
Fecha de Ingreso: marzo-2011
Ubicación: Donde estoy? Washing you.
Mensajes: 30
Antigüedad: 13 años
Puntos: 0
Respuesta: Ayudapara ingresat una cantidad de digitos

El strlen me da siempre valor 0. No se si tenga que ver con que estoy guardando en la cadena numeros enteros. Es que como siempre eh usado caracteres en las cadenas.... tengo esa duda.

Asi me quedo con la ultima modificacion...

Código C:
Ver original
  1. do{
  2.         printf("\nIntroduzca el numero de cuenta (20digitos): ");
  3.        
  4.         scanf("%d", &numero[20]);
  5.         var=strlen(numero);
  6.         printf("%d", var);//longitud de la cadena
  7.     }while (var!=20);
__________________
Software libre rocks lml
  #8 (permalink)  
Antiguo 31/03/2011, 16:08
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: Ayudapara ingresat una cantidad de digitos

Es que strlen trabaja con cadena de caracteres, no con un numero.

Código C:
Ver original
  1. char numero[20];
  2. do{
  3.         printf("\nIntroduzca el numero de cuenta (20digitos): ");
  4.        
  5.         scanf("%s", numero);
  6.         var=strlen(numero);
  7.         printf("%s", var);//longitud de la cadena
  8.     }while (var!=20);

Es fundamental que te acostrumbre a ver los tipos de las funciones. Son utiles para corregir muchos problemas antes de tener que andar preguntando.
  #9 (permalink)  
Antiguo 31/03/2011, 16:31
Avatar de Geekne  
Fecha de Ingreso: marzo-2011
Ubicación: Donde estoy? Washing you.
Mensajes: 30
Antigüedad: 13 años
Puntos: 0
Respuesta: Ayudapara ingresat una cantidad de digitos

Ummm. Pero es que yo no necesito leer una cadena de caracteres como tal. Lo que necesito es leer un entero que sea de 20 digitos. A menos que pueda usar %s para leer un entero... no creo.
__________________
Software libre rocks lml
  #10 (permalink)  
Antiguo 31/03/2011, 16:41
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: Ayudapara ingresat una cantidad de digitos

El problema esta que un numero de 20 digitos es grandisimo...deberias buscar una libreria que te permita manejar numeros grandes en c.
  #11 (permalink)  
Antiguo 31/03/2011, 17:15
Avatar de Geekne  
Fecha de Ingreso: marzo-2011
Ubicación: Donde estoy? Washing you.
Mensajes: 30
Antigüedad: 13 años
Puntos: 0
Respuesta: Ayudapara ingresat una cantidad de digitos

Okey. Bueno, tendre que preguntarle a mi profe... No eh conseguido mucho de eso. Gracias!
__________________
Software libre rocks lml
  #12 (permalink)  
Antiguo 31/03/2011, 19:38
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: Ayudapara ingresat una cantidad de digitos

Yo te decia que lo maneje como cadena de caracteres porque es un numero de cuenta....no tenes que aplicar aritmetica sobre eso.

Etiquetas: cantidad, digitos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:57.