Programación General > C/C++
Convertir Cadena de caracteres en un float
zairillo:
Hola a todos!
Necesito saber si hay alguna función o algo que me realice lo siguiente:
Estoy realizando un proyecto, y me encuentro con este problema: Tengo una cadena de caracteres declarada con "unsigned char cad[4], por ejemplo" y en cada una de esas 4 posiciones existirá un valor. Pues bien, necesito unir los 4 valores esos para formar una sola variable de tipo "float".
He estado mirando y existen funciones como atoi(convierte cadena Char en Int), atof(convierte cadena Char en double) y atol(convierte cadena Char en long), pero no he visto ninguna función que convierta Unsigned Char(que no Char solamente) a float.
Espero que me echéis una mano.
Un saludo.
Eternal Idol:
Hace un casting y listo, los numeros solo pueden ser signed igual (48-57).
zairillo:
Sé que haciendo un casting solamente puedo cambiar el tipo de una variable, pero es que necesito cambiar el de cuatro bytes de tipo unsigned char de una cadena, a una sola variable de tipo float. No quiero cambiar de tipo cada posición de la cadena unsigned char por otra posición de float.
Si tengo:
float var;
unsigned char cad[4];
cad[0]=23;
cad[1]=45;
cad[2]=128;
cad[3]=72;
quiero ponerlos unidos en una sola variable de tipo float, quedando por ejemplo: var=234512872 (este no es el resultado final, es solo para la explicación)
Saludos!
Eternal Idol:
Te decia que usaras atof con un casting a tu variable ... atof((const char*)cad);
zairillo:
Lo he intentado, pero el problema es que la función atof está hecha para usar cadenas de char, y no de unsigned char como yo necesito usar, así que me dice "invalid conservion from unsigned char to const char". ¿Hay alguna manera de hacer algo ahí?
Navegación
[#] Página Siguiente
Ir a la versión completa