fscanfでファイルから値を読み込みたいんですが、

FILE *fp = fopen("data.dat","r");
float x,y;

if(!fp)
return 1;
while(fscanf(fp,"%f %f",&x,&y) != EOF)
printf("%f %f\n",x,y);
fclose(fp);

これはどこかのサイトに載ってたのをほぼそのまま借りたのですが、
これだとdataファイルの中身の値、例えば0.123・・・などの整数値が0の場合printfを使ったとき
1,23・・・のように初めて0ではない数が現れるとその数値が整数部になってしまいます。
これをそのまま0.123・・と印字できるようにしたいのですが、御教授お願いします。

値がマイナスの場合はそのまま印字されてました。
ファイル内の値はただの数でなく0.12345E+00のようになっていてE以前の数値の部分だけ読み込んで印字できるようにしたいです。
上のプログラムでは一応不要な部分は消えてました。