|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Apr 2010
Città: Whiterun
Messaggi: 580
|
[C++] passare da un dato float al char...
Salve a tutti,
ho questo problema: ricevo in input dalla seriale un array di unsigned char di cui 4 rappresentano un dato float. Devo convertire tale dato in float e poi in char per concatenarlo in un vettore "char" che uso per l'output all'utente. Dopo che ho letto l'array sulla porta (si chiama let ed ha dimensioni 8) devo prendere la parte che mi interessa, convertirla in float e poi in char. Io ho scritto questo codice: Codice:
unsigned char resp[4];
resp[0]=let[4];
resp[1]=let[5];
resp[2]=let[6];
resp[3]=let[7];
float* posit=(float *)resp; //conversione unsigned to float
char ri[4]; // vettore che devo concatenare
sprintf(ri,"%0.2f",*posit); //scrittura in ri del dato
strcat(risposta,ri); //concatenamento all'array di uscita "risposta"
__________________
Come la chiami la chiami, la cocozza sempre cocozza è. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Apr 2010
Città: Whiterun
Messaggi: 580
|
up
__________________
Come la chiami la chiami, la cocozza sempre cocozza è. |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Jul 2008
Città: Roma
Messaggi: 542
|
Il float lo ottieni con
float posit = *((float *)(let+4)); direttamente da let senza usare resp Per il resto, non capisco perché usi char ri[4]; di soli 3 caratteri (+ terminatore) quando il numero sarà quasi certamente più lungo ... Dovrai prevedere un numero di cifre maggiori, magari char ri[20]; e poi utilizzare la sprintf e la strcat. |
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: Apr 2010
Città: Whiterun
Messaggi: 580
|
Quote:
__________________
Come la chiami la chiami, la cocozza sempre cocozza è. |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 13:43.




















