Chcę odczytać plik .csv i zapisać do struktury/wyświetlić na ekranie jego zawartość. Niestety niezbyt dobrze sobie z tym radzę. Jak na razie przez analogię do tego

http://www.elektroda.pl/rtvforum/topic1796604.html
skonstruowałęm takie coś:

 #include <stdio.h>
#include <math.h>
# define M 500
int main()
{
struct sygnal
{
    float poczatek;
    float interwal;
	float koniec;
    float *tablica;
};
float x;
int i =0;
char znak;
int wiersz = 0;
struct sygnal pierwszy;
char FileName [M];
char wybor;
FILE *f;
printf("Podaj nazwe pliku (wraz z formatem): ");
scanf ("%s", FileName);
printf("Dane oddzielane przecinkiem czy srednikiem?\n, - ,\nco innego - ;\n");
scanf("%s",&wybor);
f=fopen(FileName,"r");
while((znak = getc(f)) != EOF) 
   { 
      if(znak == '\n') 
         ++wiersz; 
   }
pierwszy.tablica = (float*)malloc(wiersz * sizeof(float));
for(i=0; i<=wiersz; i++)
{
fscanf(f,"%g ; %g \n", &x, &pierwszy.tablica[i]);
printf("x = %g\t y = %g\n",x, pierwszy.tablica[i]);
if(i==0)
x=pierwszy.poczatek;
if (i==wiersz)
x==pierwszy.koniec;
}
pierwszy.interwal =(float) (pierwszy.koniec - pierwszy.poczatek)/wiersz;
system("pause");
return 0;
};

Próbuję też z czymś takim, wiem że jestem blisko - niestety wszędzie 0 wychodzą:

 #include <stdio.h>
#include <math.h>
# define M 500
#include <stdlib.h>

int main()
{
struct sygnal
{
    float poczatek;
    float interwal;
	float koniec;
    float *tablica;
    float *x;
};
float x;
int obieg;
int i =0;
char znak;
int wiersz = 0;
struct sygnal pierwszy;
char FileName [M];
char wybor;
FILE *f;
printf("Podaj nazwe pliku (wraz z formatem): ");
scanf ("%s", FileName);
//printf("Dane oddzielane przecinkiem czy srednikiem?\n, - ,\nco innego - ;\n");
//scanf("%s",&wybor);
f=fopen(FileName,"r");
while((znak = getc(f)) != EOF) 
   { 
      if(znak == '\n') 
         ++wiersz; 
   }
pierwszy.tablica = (float*)malloc(wiersz * sizeof(float));
pierwszy.x = (float*)malloc(wiersz * sizeof(float));
///////////////////////////////
//char slowo[100];
//float c;
//obieg=0;
//for(i = 0; i<=wiersz; i++ ;)
//{
//    c=fscanf(f, "%s", slowo);
//    float wartosc = atof(slowo);
//    obieg++;
//    if(obieg==1)
//    pierwszy.x[i]=wartosc;
//    printf("x = %g\t", pierwszy.x[i]);
//    if(obieg==3)
//    {
//    pierwszy.tablica[i]=wartosc;
//    printf("y = %g\n", pierwszy.tablica[i]);
//    obieg=0;
//    }
//    if(i==0)
//    x=pierwszy.poczatek;
//    if (i==wiersz)
//    x==pierwszy.koniec;
//
//}
//////////////////
char tab1[50], tab2[50];
for(i=0; i<=wiersz; i++)
{
fscanf(f,"%s ; %s\n", &tab1[i], &tab2[i]);
pierwszy.x[i]=atof(tab1);
pierwszy.tablica[i]=atof(tab2);
printf("x = %g\t y = %g\n",pierwszy.x[i], pierwszy.tablica[i]);
if(i==0)
x=pierwszy.poczatek;
if (i==wiersz)
x==pierwszy.koniec;
}
pierwszy.interwal =(float) (pierwszy.koniec - pierwszy.poczatek)/wiersz;
system("pause");
return 0;
};