| Ver tema anterior :: Ver siguiente tema |
| Autor | Mensaje |
|---|
Xedrox
Registrado: 27 Dic 2012 Mensajes: 20
| Publicado: 27/12/2012 11:50 am | | | Título: Char* to long long |
| Buenas, tengo un problema que no encuentro como resolver (ya busque en el foro y Google y no encontre respuesta). Tengo una cadena que la leo desde un puntero char*, esta cadena son todos numeros naturales y la debo almacenar en un "long long". Como puedo hacer la conversion, prove con "atol" pero se cuelga el programa :s.
Esta es la porción que me da el error:
| Código: |
long long cantidad; cantidad = atol (token); //token es una cadena char*
|
El programa esta siendo compilado para 32bits, no se si tiene que ver.
Muchas Gracias |
|
| Volver arriba | |
 |
rir3760

Registrado: 01 Oct 2004 Mensajes: 7527 Ubicación: Mexico
| Publicado: 27/12/2012 4:22 pm | | | Título: |
| En un compilador que soporte parte del estándar C99 (como es el tipo long long) utilizas la función "atoll" o bien sscanf con el especificador de formato "%lld".
Un saludo _________________ C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly. -- Kernighan & Ritchie, The C programming language |
|
| Volver arriba | |
 |
Xedrox
Registrado: 27 Dic 2012 Mensajes: 20
| Publicado: 28/12/2012 4:40 am | | | Título: |
| | rir3760 escribió: | En un compilador que soporte parte del estándar C99 (como es el tipo long long) utilizas la función "atoll" o bien sscanf con el especificador de formato "%lld".
Un saludo |
Sigue sin funcionar, probe con el atoll y el sscanf y el programa se queda colgado cuando llega a esa instruccion..
Ej con sscanf:
| Código: | printf("Valor antes de la conversion: %s",token); sscanf(token,"%lld",trx.imp); //Aca se cuelga porque el segundo printf no lo llego a ver printf("Luego de la conversion: %s",trx.imp);
|
Lo estare implementando bien? |
|
| Volver arriba | |
 |
|
Sorancio

Registrado: 29 May 2009 Mensajes: 1157 Ubicación: España
| Publicado: 28/12/2012 7:49 am | | | Título: |
| sscanf require como todas las funciones de su familia, un puntero al valor:
| Código: | sscanf(token,"%lld", &(trx.imp)); //Aca se cuelga porque el segundo printf no lo llego a ver |
_________________ Mi página web (en inglés): |
|
| Volver arriba | |
 |
rir3760

Registrado: 01 Oct 2004 Mensajes: 7527 Ubicación: Mexico
| Publicado: 28/12/2012 8:39 am | | | Título: |
| | Xedrox escribió: | | Sigue sin funcionar, probe con el atoll y el sscanf y el programa se queda colgado cuando llega a esa instruccion. |
Si solo respondes "no funciona" no hay forma de ayudarte, por favor lee las reglas de los foros, si tienes una duda o pregunta da toda la información posible para resolverla.
Empieza siguiendo la indicación de Sorancio, también verifica que incluyas los encabezados correctos: <stdlib.h> en el caso de atoll y <stdio.h> si utilizas sscanf.
Y si continúan los problemas no queda mas que publicar el código fuente del programa.
Un saludo _________________ C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly. -- Kernighan & Ritchie, The C programming language |
|
| Volver arriba | |
 |
|
|