2012-04-04 2 views
0

У меня есть текстовый файл, в котором данные хранятся в виде столбцов. Как извлечь каждый столбец в массив?чтение текстового файла column wise C++

например: ABCD

14 15 16 17 

Я хочу четыре массива, как, а = {10,14}, B = {11,15} {с = 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

Вы хотите назвать массив из значения из текстового файла ?? –

ответ

1

Поскольку вы ничего не пробовали, пока я не дам вам никаких предложений.

сначала возьмите линию в string и разделите ее, а затем сохраните все значения в массиве. , так что в конце вы получите полные строки массивов.

теперь используют индексы и сохраняют их в разных массивах столбцов на основе таких индексов, как: все элементы в массивах с похожим индексом будут храниться в массиве colN.

0

Подсказка - Надеюсь, вы не будете ума Я не писать код для вас :)

  • Чтение файла с помощью InputStream.
  • Разделите строку, прочитав токенизацию входных данных.
  • Используйте метод atoi() для преобразования строк в целые числа и заполнения массивов.
+0

Я бы сделал подобное, но использовал stringstream вместо atoi. –

Смежные вопросы