从.txt文件中读取数据并保存到矢量

时间:2012-12-03 15:39:51

标签: c++

这是一个非常简单的问题:如何读取.txt文件并使用c ++保存到矢量?我将9个数据存储在由tab分隔的txt文件中,我想将其保存到三个不同的Vector(我使用的是Eigen库)。 这9个数据是:

 -468.01    198.74  -123.9  -471.67 195.41  46.878  -471.39 111.84  45.518 
有人可以帮帮我吗? 提前谢谢!

1 个答案:

答案 0 :(得分:5)

假设您想将它们存储到双精度矢量中,并且您有一个ifstream对象,最简单的方法是:

std::ifstream ifs( "data.txt" );

std::vector< double > values;
double val;
while( ifs >> val )
   values.push_back( val );

有一个使用istream_iterator的替代方法:

std::copy( std::istream_iterator<double>(ifs), std::istream_iterator<double>(),
          std::back_inserter( values ) );

这保存到单个矢量(不是3)。标题说保存到矢量中,问题的文本要求您保存到3个矢量中。很难知道如何将数据格式化为3个向量。

当然,您可以将它们从文件中读取到单个向量中,并且有一个包装类,使一个向量显示为3个子范围。

我已经为您提供了基础知识,请亲自尝试其余的编码。