質問させていただきます。

現在csvファイルを読み込むプログラムを書いています。
ファイルは一行に整数や小数が20~30あり、70万行ほどあります。
ファイルを読み込みに際して
fgets→strtok→atof or (atoi)
とすると膨大な時間がかかります。
バイナリにして読み込むのも試しましたが、速度向上はしませんでした。
ほかにどのような手がありますでしょうか。