2012-12-03 116 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

相關問題