2017-12-01 10 views
-1

이미 2 차원 배열에 번호를 저장하는 방법을 알고입력 txt 파일에서 2 C++ 배열로 데이터를 읽는 방법?

1 2 3 4 5 col A 2 3 4 5 6 col B 2 3 4 5 6 col C 2 3 4 5 6 col D 2 3 4 5 6 col E

txt 파일. 그러나 질문은 또한 단어 (공간 포함)를 1 차원 배열에 저장해야한다고 요구합니다. 누군가 이렇게하는 법을 말해 줄 수 있습니까? 저는 C++을 처음 접했습니다. 어떤 도움을 주시면 감사하겠습니다.

+0

텍스트의 이미지가 아니라 텍스트 만 게시하십시오. 지금까지 작성한 코드를 게시하십시오. –

+0

그러면 2D 배열을 읽을 수 있습니다. 1D 배열을 읽는 것이 더 어렵습니다. * 특정 * 문제? –

+0

@BoPersson 코드를 숫자 열로 건너 뛰고 "col A", "col B"등을 1D 배열로 읽는 방법을 알아야합니다. –

답변

0

이렇게하면 기본 읽기 파일 루프가 필요합니다.이 루프는 파일을 한 줄씩 읽은 다음 공백으로 나눕니다. 숫자의 경우 2 차원 배열과 1 차원 배열의 단어로 푸시됩니다.

fstream file; 
file.open("somefile.txt"); 
vector<vector<double>> nums; 
vector<string> words; 
string line; 
while(getline(file, line)) 
{ 
    vector<double> tempNums; 
    istringstream liney(line); int i = 0; string cell; 
    while(getline(liney, cell, ' ')) 
    { 
     if(i < 5) tempNums.push_back(stoi(cell.c_str())); 
     else words.push_back(" " + cell); 
     i++; 
    } 
    nums.push_back(tempNums)   
} 

희망 사항이 도움이됩니다. (위의 서식을 기반으로합니다.)