Hey Guys…
sitze vor folgendem Problem.
Sitze aktuell gerade an einen C Projekt und muss mich erst ein wenig einfuchsen. Ich versuche gerade das das Programm mir eine CSV-Datei einliest und die durch komma getrennten Werte in ein Array schreibt.
Die CSV-Datei geöffnet sieht so aus:
„41.7“,„38.3“,„36.3“,„45.4“
„43.5“,„42.4“,„56.4“,„47.9“
„53.6“,„61.4“,„60.1“,„63.2“
„61.7“,„55.0“,„53.7“,„53.6“
„56.1“,„55.8“,„53.1“,„52.6“
„54.5“,„56.6“,„61.5“,„61.8“
.
.
.
Hier mein bisheriger Versuch es mit C zu Programmieren.
Bitte reisst mir nicht den Kopf, bin absoluter Anfänger und falls die eine oder andere Sache vieleicht net der soo perfekte Programmierstil ist bitte ich das zu etnschuldigen
Als Programmierbasis benutze ich DEVc++
Das C-Programm
#include
#include
int main(void)
{
FILE *data;
char *filename;
char c;
int ZV=0,i =0,ZV1=0;
int* Array;
char string=0;
printf(„Bitte nennen Sie die Datei zum einlesen:\n“);
scanf("%s",filename);
data = fopen(filename, „r“);
if (data!=NULL)
{
while ((c=fgetc(data))!=EOF)
{
if (c==’,’) {ZV++;}
if (c==’\n’) {ZV++;}
}
}
else { printf(„Fehler beim Oeffnen der Datei!\n“);}
//Feld benötigter Groesse wird erstellt
Array = (int*)malloc(ZV * sizeof(int));
for(ZV1=ZV;ZV1>0;ZV1–)
{
i=0;
fscanf(data,"%d.%d", &string);
*(Array+i)=string1;
i++;
}
for (ZV1=ZV;ZV1>0;ZV1–)
{
i=0;
printf("%s %d\n", (Array+i),i);
i++;
}
printf(„Die Datei enthaelt %d Felder\n“, ZV);
free (Array);
system(„PAUSE“);
return 0;
}
Was mache ich falsch? Warum funktioniert es nicht?
Als ausgabe bekomme ich so in jeden Feld 0
Warum???
Ich hoffe ihr könnt mir helfen
Greez
Alex