现在的位置: 首页 > 综合 > 正文

STL利用输入迭代器读入文本文件中的数据

2013年07月19日 ⁄ 综合 ⁄ 共 651字 ⁄ 字号 评论关闭

传统的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将数据隔开。

抱歉!评论已关闭.