2012-04-04 108 views
0

我有一個文本文件,其中數據存儲爲列。如何將每列提取到數組中?閱讀文本文件列明智c + +

例如:ABCD

14 15 16 17 

欲四個陣列爲A = {10,14},B = {11,15} C = { 12,16} d = {} 13,17

下面是我迄今所做的以將它們添加到一個數組:

CArray <double,double> *data = new CArray <double,double>(); 

CString strLine; 

TRY 

{ 
    CStdioFile file(m_fileName, CFile::modeRead); 

    while(file.ReadString(strLine)) { 
     CArray <double,double> arrayValues; 
     splitString(strLine,arrayValues); 

     for (int i=0; i< arrayValues.GetSize()-1;i++){ 
     // Temp_data[i] = arrayValues.ElementAt(i); 
      data->Add(arrayValues.ElementAt(i)); 
     } 
    } 
} 
CATCH_ALL(e) 
{ 
    e->ReportError(); // shows what's going wrong 
} 
END_CATCH_ALL 


void splitString(CString S, CArray<double,double>& arrayValues){ 

CString sep = _T(" "); 
int start = 0; 
CString aux = S.Tokenize(sep, start); 
arrayValues.Add(_tstof(aux)); 
while(start != -1){ 
     aux = S.Tokenize(sep, start); 
     arrayValues.Add(_tstof(aux)); 

} 

} 

謝謝。

+1

你的意思是從文本文件中的值命名數組? – 2012-04-04 07:25:57

回答

1

既然你沒有嘗試過任何東西,直到我會給你一些建議。

首先將線條劃分爲string並對其進行分割,然後將所有值存儲在數組中。 所以最後你會有數組的總數。

現在使用索引並根據索引將它們存儲在不同的列數組中: 具有相似索引的數組中的所有元素都將存儲在數組colN中。

0

提示 - 希望您不要頭腦爲你:)

  • 使用InputStream讀入文件我沒有寫代碼。
  • 通過使輸入數據令牌化來分割讀取的行。
  • 使用atoi()方法將字符串轉換爲整數並填充數組。
+0

我會做類似的,但使用stringstream而不是atoi。 – 2012-04-04 08:01:05