2011-03-02 19 views
8

que estoy leyendo desde un archivo de texto que contiene:de entrada fscanf con flotadores

Mary 55334422 24.90 56.6 45.68 

y estoy leyéndolo en:

....char name[20]; int num; double worked; double rate; double total;.... 

fscanf(fp, "%s %d %f %f %f\n", name, &num, &worked, &rate, &total); 

Me estoy poniendo el nombre y el número entero bien, pero los números de punto flotante salen algo así como -9522999990000000000000000000.00

¿Estoy haciendo algo mal aquí?

Respuesta

12

Necesita usar format for a double: %lf, en lugar de eso para un flotador %f ... o cambie a flotadores en lugar de a dobles.

+0

muchas gracias por su ayuda – rach

1

Cambiar los dobles de los flotadores, o cambiar su formato a% Si

4

Trate lf en lugar de f a analizar en variables dobles:

fscanf(fp, "%s %d %lf %lf %lf\n", name, &num, &worked, &rate, &total);