次のようなテキストファイルがあります。
173865.385 444879.102 0.299
173864.964 444879.137 0.467
173864.533 444879.177 0.612
173864.113 444879.211 0.798
173863.699 444879.244 1.002
173863.27 444879.282 0.926
173862.85 444879.317 0.974
....
....
....(around 200000 rows)
各列を1つの配列に入れようとしています。今、私はこれらのクリプトを持っています:
int ReadDataFromFile(double * DataList[] ,int DataListCount,string &FileName)
{
ifstream DataFile;
int CurrentDataIndex = 0;;
DataFile.open(FileName.c_str(),ios::in);
if(DataFile.is_open()==true)
{
char buffer[200];
while(DataFile.getline(buffer,200))
{
string strdata;
stringstream ss(buffer);
for(int i =0;i<DataListCount;++i)
{
getline(ss,strdata,' ');
DataList[i][CurrentDataIndex] = strtod(strdata.c_str(),NULL);
}
++CurrentDataIndex;
}
}
return CurrentDataIndex;
}
int _tmain(int argc, _TCHAR* argv[])
{
double a[200000],b[200000],c[200000];
double* DataList[] = {a,b,c};
int DataCount = ReadDataFromFile(DataList,3,string("D:\\read\\k0_test.txt"));
for(int i=0;i<DataCount;++i)
{
cout<<setw(10)<<a[i]<<setw(10)<<b[i]<<setw(10)<<c[i]<<endl;
}
system("pause");
return 0;
}
ただし、常に「オーバーフロー」というエラーが表示されます。この問題を解決する他の方法はありますか?