ファイルの読み込みと書き込み C++

入力ファイル"input.dat"から3系列のデータを読み込み、出力します。
入力ファイルの書式:データとデータの間は半角のスペースでもタブでもOKです。
データ数は10,000まで、ファイル名の文字数は無制限です。
データの形式をタブ区切りからスペース区切りに変換することもできます。その逆もできます。
#include<iostream>
#include<fstream>
using namespace std;

int main(){
    double a[10000],b[10000],c[10000];
    int i=0,max;

    ifstream fin("input.dat");
//入力ファイルを開く
/*
ifstream fin;
fin.open("input.dat");
でもよい。ただしファイル操作終了後
fin.close();
をつけること。
*/
    ofstream fout("output.dat"); 
//出力ファイルを開く

//ファイルが開けなかったときの操作。
    if(fin.fail()){  // if(!fin)でもよい。
        cout << "入力ファイルをオープンできません" << endl;
        return 1;
    }
    if(fout.fail()){  // if(!fout)でもよい。
        cout << "出力ファイルをオープンできません" << endl;
        return 1;
    }

//ファイルからデータを読み込む。
//読み込む順(左から)にa,b,cとする。
//ファイルからデータがなくなるまで読み込む。
    while((fin >> a[i] >> b[i] >> c[i])!=0){
        i++;
    }
    max=i;

//ファイルへデータを出力。
    for(i=0;i<max;i++){
        fout << a[i] <<" "<< b[i] <<" "<< c[i] << endl;
    }
    return 0;
}