Leer fichero csv

Iniciado por gonzalo_C, 20 Febrero 2012, 17:32 PM

0 Miembros y 1 Visitante están viendo este tema.

gonzalo_C

Hola,

estoy realizando un pequeño programa que lee un fichero csv, una vez leida la cabecera y todo, llamo a la siguiente función:

int Lee_Estacion_csv(AEMET_estacion*s, FILE *in, const char *delim)

*s es la estructura donde voy a guardar lo que lea.

*in es el fichero en formato lectura.

* delim es una cadena : ";"   que son los separadores de los campos.


lo que hago es guardar toda una linea en una cadena y luego con strtok y los delim pues voy guardandolo en s.

Bueno el problema es el siguiente:

cuando va a leer la linea del fichero csv:

1387;A CORUÑA;A CORUÑA;58;8.1;12:00;5.8;19:20;12.8;11:20;0.0

hago lo siguiente:


fscanf(in, "%s", cad);

y cad queda así: "1387;A"

por lo que veo cuando encuentra un espacio deja de leerla.
¿como puedo evitar esto?