PDA

Visualizza la versione completa : [C] problema con strtod()


SDB
19-10-2005, 13:13
ciao a tutti..
ho il seguente codice:
-------------------------------
BOOL GetNumber(struct TDF *IlF,const char *str, double *value)
{
char Buffer[256], *endptr;
int i = 0;

while (*str == ' ') str++;
for (; i < 255 && (isdigit(*str) || *str == '.' || *str == '+' || *str == '-' || *str == 'e' || *str == 'E'); i++, str++)
Buffer[i] = *str;
Buffer[i] = '\0';
value = strtod(Buffer, &endptr);
return (endptr == Buffer + i && i);
}
-------------------------------
ma in fase di compilazione ho il seguente errore:
"Illegal use of floting point"
A cosa dovuto?? :bh:
ciao e grazie!!

LeleFT
19-10-2005, 13:34
Credo che l'errore sia perch stai assegnando un valore floating point ad un puntatore:


BOOL GetNumber(struct TDF *IlF,const char *str, double *value)
{
char Buffer[256], *endptr;
int i = 0;

while (*str == ' ') str++;
for (; i < 255 && (isdigit(*str) || *str == '.' || *str == '+' || *str == '-' || *str == 'e' || *str == 'E'); i++, str++)
Buffer[i] = *str;
Buffer[i] = '\0';
*value = strtod(Buffer, &endptr);
return (endptr == Buffer + i && i);
}

Con la modifica che ho apportato dovrebbe andare. :)


Ciao. :ciauz:

Loading