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

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Error muy extraño con SSCANF
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Error muy extraño con SSCANF  (Leído 2,342 veces)
El_programata

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Error muy extraño con SSCANF
« en: 24 Febrero 2016, 17:15 pm »

Hola buenos días, tengo un código que funciona perfectamente excepto en unos casos en concreto.

Tengo una variable tipo int llamada code y otra variable string llamada lenconte.

Hal hacer el cast de esta manera:

Código:
sscanf(lenconte,"%x", &code);

Todo funciona correctamente ....excepto que code solamente capta los 8 últimos digitos de lenconte y para números muy largos se me secciona.

Alguna idea?

Gracias.


« Última modificación: 24 Febrero 2016, 17:32 pm por El_programata » En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: Error muy extraño con SSCANF
« Respuesta #1 en: 24 Febrero 2016, 17:24 pm »

Debes recordar que  los números son finitos y hay un máximo valor para cada tipo. 16 dígitos en hexadecimal ya es hablar de un número muy muy grande.
Deberías pensar en usar una librería para manejar este tipo de números o manejarlos por ti mismo.


En línea

El_programata

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: Error muy extraño con SSCANF
« Respuesta #2 en: 24 Febrero 2016, 17:37 pm »

Debes recordar que  los números son finitos y hay un máximo valor para cada tipo. 16 dígitos en hexadecimal ya es hablar de un número muy muy grande.
Deberías pensar en usar una librería para manejar este tipo de números o manejarlos por ti mismo.

Edito el mensaje principal, ya que no son 16 sino 8. Aunque es cierto que siguen siendo números muy grandes. He probado a trabajar con %lx y %llx en el cast pero sigue admitiendo unicamente estos 8 digitos. No se si se me escapa algun concepto, llevo poco programando. A ver si a alguien se le ocurre algo, yo sigo investigando lo que dices de las librerías.

Muchas gracias :)
En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: Error muy extraño con SSCANF
« Respuesta #3 en: 24 Febrero 2016, 18:50 pm »

Dices que lo guardas en un int.
Cambia la variable a long, tendrás el doble de tamaño. Y si no vas a usar números negativos usa unsigned long.
En línea

furciorifa

Desconectado Desconectado

Mensajes: 94


Ver Perfil
Re: Error muy extraño con SSCANF
« Respuesta #4 en: 27 Febrero 2016, 07:30 am »

Tú error está en que estas asignando %x como Hexadecimal

te recuerdo que hay una variación de 0 1 2 3 4 5 6 7 8 9 A B C D E F numeros en Hexa es decir 16 como su nombre lo dice, al almacenar más de 8 dígitos estamos hablando de 16^8 que es un 1GB así que ten cuidado.
En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: Error muy extraño con SSCANF
« Respuesta #5 en: 27 Febrero 2016, 08:49 am »

furciorifa, esa cuenta está mal.

Los valores hexadecimales representan 4 bits, poner dos juntos es un byte en la memoria del ordenador.

Por tanto si el ordenador le acepta un númeri de 16 hexadecimales lo que está es trabajando con un dato de 64 bits.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
extraño error en vista de una funcion sencilla: Runtime error '75': Path/File
Programación Visual Basic
drakolive 9 15,063 Último mensaje 9 Marzo 2012, 17:08 pm
por Sancho.Mazorka
Error extraño C
Programación C/C++
Sefean 4 2,409 Último mensaje 1 Noviembre 2014, 15:58 pm
por ivancea96
Duda sobre sscanf y strtok
Programación C/C++
antolinalvaro 1 1,293 Último mensaje 1 Agosto 2018, 15:11 pm
por MAFUS
error extraño
Dudas Generales
ElagusxD 0 1,523 Último mensaje 21 Febrero 2022, 03:44 am
por ElagusxD
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines