0

我有一个文本文件,其中数据存储为列。如何将每一列提取到数组中?

例如:abcd

10 11 12 13

 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));
    
}

}

谢谢。

4

2 回答 2

1

由于您还没有尝试过任何事情,直到我会给您一些建议。

首先将行放入 astring并将其拆分,然后将所有值存储在一个数组中。所以最后你将拥有数组的总行数。

现在使用索引并根据索引将它们存储在不同的列数组中,例如:数组中具有相似索引的所有元素都将存储在数组中colN

于 2012-04-04T07:27:10.907 回答
0

提示 - 希望您不会介意我没有为您编写代码 :)

  • 使用输入流读取文件。
  • 通过对输入数据进行标记来拆分读取的行。
  • 使用 atoi() 方法将字符串转换为整数并填充数组。
于 2012-04-04T07:33:20.993 回答