2012-12-03 134 views
-1

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

-468.01 198.74 -123.9 -471.67 195.41 46.878 -471.39 111.84 45.518 

有人能帮帮我吗? 在此先感谢!

+1

你试过的是什么没有奏效? – Borgleader

回答

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个子范围。

我已经给你基本知识,请自己尝试编码的其余部分。

+0

我正在使用infile.open()函数,但我不知道如何说“跳过选项卡并采取下一个值”。用eigen很容易传递返回值,如:vector(0)=获得的值。 – tiavec88

+0

通过流式传输跳过空白,即使用>>写入双精度值。我还向你展示了读取这些文件的方法,它将填充std :: vector。这是为了解决它如何适合您的EigenVector库。 – CashCow

+0

非常感谢@CashCow ... >>运营商是完美的! – tiavec88