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

本文介绍了使用C++通过传统方法及输入迭代器方式从文本文件中读取数据的技巧。迭代器方法无需预知文件大小,适用于由空白或制表符分隔的数据。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值