Grazie, ho risolto usando la funzione fgets,
adesso però mi sorge un dubbio.
sono riuscito a spittare il file in 4 array in questo modo:
Vi posto il codice

//INIZIO CODICE
#include <stdio.h>
#include <stdlib.h>
float val ;
char prima_riga[100];
float FX[10];
float FA[10];
float FB[10];
float FC[10];
float FD[10];
int i =0;
int a,b,c,d;
int l_FX=0;
int ind =0;

int main ()
{
FILE *s;
s = fopen("quasi2.txt", "r");

/* controlla se il file viene aperto */
if ((s = fopen("quasi2.txt", "r")) == NULL)
{
printf("Non posso aprire il file %s\n", "quasi2.txt");
}


fgets( prima_riga,50,s); // legge la prima riga del file


printf(" la prima riga e': %s\n", prima_riga);


while(fscanf(s,"%f",&val)!=EOF )
{


FX[i]=val; // riempie vettore FX
printf ( "FX=%f\n", FX[i]);
l_FX=i; // calcola l' ultimo indice pieno del vettore FX
i++;
}

fclose(s);



ind =0;
a=0;
while ( ind <= l_FX) // Riempimento FA
{
FA[a]=FX[ind];

printf ( "FA=%f\n", FA[a]);
a++;
ind =ind+4;
}


printf ( "\n");
ind =1;
b=0;
while ( ind <= l_FX) // Riempimento FB
{
FB[b]=FX[ind];

printf ( "FB=%f\n", FB[b]);
b++;
ind =ind+4;

}


printf ( "\n");
ind =2;
c=0;
while ( ind <= l_FX) // Riempimento FC
{
FC[c]=FX[ind];

printf ( "FC=%f\n", FC[c]);
c++;
ind =ind+4;

}


printf ( "\n");
ind =3;
d=0;
while ( ind <= l_FX) // Riempimento FD
{
FD[d]=FX[ind];

printf ( "FD=%f\n", FD[d]);
d++;
ind =ind+4;

}

system("PAUSE");

}

// FINE CODICE

Cosi tutto funziona e riesco a riempire i 4 array per colonna partento da un file cosi fatto:

FA FB FC FD
2.123 4.522 3.21 3.77
3.441 5.663 7.55 8.93
23.55 12.34 34.45 66.66
21.345 18.234 12.99 23.44

il dubbio è che il file che devo utilizzare è costitito da circa 400000 valori
( questo è solo un file di prova).
Vi chiedo :
viste le dimensioni elevate del file sarebbe opportuno cambiare la struttura del codice? per es usando dei puntatori ( vi chiedo perchè non ho tanta familiarità con questi concetti) .
Potreste darmi dei consigli su come trattare in questo caso elevate quantità di valori?
grazie mille.