Per controllare la fine del file si usa la feof()
Devi usare un valore intero dove memorizzare in numero effettivo dei valori letti (non è detto che sia sempre uguale al numero massimo prestabilito)
In fase di lettura del vettore devi considerare solo l'effettivo numero di dati inseriti.
codice:
#include <stdio.h>

#define MAX 2000

int main (void)
{
	FILE  *fp;
	float  v[MAX];
	int    max, i;

	fp = fopen("prova_int.txt","r");

	if( NULL!=fp)
	{
		for(max=0; !feof(fp) && max<MAX; max++)
			fscanf(fp, "%f", &v[max]);

		for(i=0; i<max; i++)
			printf("%f\n", v[i]);

		fclose(fp);
	}
	else
		printf("il file non si può aprire\n");

	getchar ();
	return 0;
}