传统的C++读入文本文件的数据方式大概是:
ifstream dataFile;
dataFile.open(“inits.txt”);
double dArray[10]; //或者根据文本文件中的数据数目动态申请
for(int i=0; i<10; i++)
{
cout>>dArray[i];
}
dataFile.close();
可以采用输入迭代器读入文本文件中的数据。
ifstreamdataFile;
dataFile.open("ints.txt");
istream_iterator<double> dataBegin(dataFile);
istream_iterator<double> dataEnd;
//list<double> data(dataBegin,dataEnd); //构造时赋值
list<double> data;
//先构造,后赋值
data.assign(dataBegin,dataEnd);
for(list<double>::iteratork=data.begin(); k!=data.end(); ++k)
{
cout<<*k<<endl;
}
dataFile.close();
注意:采用输入迭代器读取文本文件时,数据必须用空格或TAB隔开,用其他符号隔开不能够成功读取,如逗号,输入迭代器的读入方式是一行一行的读入。
这种方式不需要知道文本文件中到底有多少数据,但是缺点是必须用空格或TAB将数据隔开。