2013-12-07 3 views
0

.txt 파일에서 열을 읽었습니다. 파일의 처음 수는 열 수 (nCol)이며 배열에 값을 저장합니다 (float values ​​[nCol] [nLin]).C++ 가변 배열 수를 생성합니다.

이제 열의 수에 따라 값 (예 : 값 [0] [nLin], 값 [1] [nLin] ...)을 다른 부동 배열로 복사하려고합니다.

내가 읽는 파일에 따라 열 수가 바뀌면 각 열에 대해 플로트 배열을 어떻게 만들 수 있습니까?

//------ Declares Array for values ------// 
const int nCol = countCols; 
float values[nCol][nLin]; 

// Fill Array with '-1' 
for(int c=0; c<nCol; c++){ 
    for(int l=0; l<nLin; l++) { 
     values[c][l] = -1; 
    } 
} 


//------ Skips the reading of line of values file ------// 
getline(inFile, dummyLine); 

// reads file to end of *file*, not line 
while(!inFile.eof()) { 
    for(int y=0; y<nLin; y++){ 
     for (int i=0; i<nCol; i++) { 
      inFile >> values[i][y]; 
     } 
    i=0;  
    } 

    const int nValues = countLines; 

float Col1[nValues]=-1, 
     Col2[nValues]=-1, 
     Col3[nValues]=-1, 
     Col4[nValues]=-1, 
     Col5[nValues]=-1; 


//------ Put values in specific Arrays ------// 

for(int v=0; v<nValues; v++) { 
     Col1[v] = values[0][v]; 
     Col2[v] = values[1][v]; 
     Col3[v] = values[2][v]; 
     Col4[v] = values[3][v]; 
     Col5[v] = values[4][v]; 
} 
cout << endl; 

나는 일을 NcoI, 부유 할 마지막까지로 "COL1은 [] 부동"고 할 ColnCol []

답변

2

가장 좋은 방법 IMO 사용하는 것입니다 감사 std::vector< std::vector<float> >

이 벡터 벡터를 원하는대로 조작 할 수 있으므로 다른 1D 열을 만들 필요가 없습니다.

+0

하지만 배열로 가능합니까? 배열을 사용하여 프로그램과 계산의 나머지 부분을 만들었습니다. – JMG

+0

벡터가 배열과 거의 동일하게 작동하므로 프로그램을 많이 변경해야한다고 생각하지 않습니다. 그리고 귀하의 질문에 대답하기 위해 라인의 수가 동적 인 경우 고정 길이 배열을 사용할 수 없습니다. –

+0

죄송합니다.하지만 벡터로 어떻게 할 수 있습니까? – JMG