CSV Datei einlesen?
-
Hallo ich habe in kleines Problem, damit möchte ich eine csv Datei einlesen.
Csv-Date:
HANS;LUSTIG;2008 PAUL;TRAURIG;2009 PETER;METER;2005
Programm:
#include <stdio.h> #include <stdlib.h> struct Daten { char vorn[40]; char name[40]; int jahr; }; int main(int argc, char **argv) { FILE *fz = NULL; struct Daten *daten = NULL; int x = 1; int i; fz = fopen ("C:\\Test.csv", "r"); if (fz == NULL) { printf ("Fehler beim Oeffnen von %s\n", argv[1]); fflush(stdin); getchar(); return 1; } while(1) { daten = realloc(daten, x * sizeof(struct Daten)); if(daten == NULL) { printf ("Es konnte kein Speicher angelegt werden.\n"); fflush(stdin); getchar(); return 1; } if(fscanf(fz, "%[^;];%[^;];%[^\n]\n", daten[x - 1].name, daten[x - 1].vorn, &daten[x - 1].jahr) == EOF) break; x++; } for(i = 0; i < x; i++) { printf("%s, %s, %d\n", daten[i].vorn, daten[i].name, daten[i].jahr); } fflush(stdin); getchar(); return 0; }
Das ganze funktioniert auch eigentlich ganz gut, nur beim Jahr macht er mist und ich habe keine Ahnung warum.
So sieht die Ausgabe aus:
LUSTIG, HANS, 942682162 TRAURIG, PAUL, 959459378 METER, PETER, 892350514 ════════════════════════════════════════════════════════════════════════════════ ════²²²²½½½½½½½½¯■¯■, ════════════════════════════════════════════²²²²½½½½½½½½¯■ ¯■, -842150451
-
Hat niemand eine idee???
-
Hallo lord_fritte,
jahr ist bei dir ein int aus der Datei wird aber ein string ausgelesen.
char* str = "2005";
-------ungleich-------------
int jahr = 2005;
-
ich lese es jetzt mit %d\n und es geht, danke.