Programación General > C/C++

 Convertir Cadena de caracteres en un float

(1/6) > >>

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

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa