2012-04-13 2 views
0

두 개의 열과 알 수없는 행 번호가있는 텍스트 파일이 있습니다. 따라서 동적 인 2 차원 벡터에 두 개의 열을로드하려고합니다. 여기까지 내가 지금까지 가지고있는 것은 작동하지 않습니다. 이것이 1 차원이라면, 나는 이것을하는 방법을 안다. 공백은 두 개의 열을 구분합니다. 2 열을 읽었으므로 크기 n의 벡터가 2 개만 필요합니다.C++에서 텍스트 파일을 두 개의 동적 벡터로 읽는 방법?

vector<vector<string> > component; 
ifstream in_file("/tmp/FW.txt", ios::binary); 

//Check if the file is open 
if(!in_file.is_open()) 
{ 
    cout << "File not opened..." << endl; 
    exit (1); 
} 

for(int i=0; !in_file.eof(); i++) 
{ 
    in_file >> component.push_back(); 
    //component.push_back(in_file); 
} 

누군가가이 기능을 작동시키는 방법을 알려주시겠습니까? 또한 2 차원 벡터를 다시 인쇄하는 방법을 말해 줄 수 있다면 원본 파일처럼 보이므로 좋을 수도 있습니다. 리눅스에서 실행이 필요 (빨간 모자)

+0

당신은 구문 분석하기가 쉬워집니다 1 열 및 2 열을 구성하는 것을 결정하는 알려진 형식이있는 경우. 당신은'push_back()'또는'>>'연산자를 올바르게 추출하지 않았습니다. 나는 또한'std :: ifstream'에서'read()'메소드를 살펴볼 것을 제안한다. – AJG85

+0

결과를 size-n 벡터의 size-2 벡터 또는 size-2 벡터의 size-n 벡터로 만들겠습니까 벡터? –

답변

2

방법에 대해 :

vector< vector<string> > component; 
ifstream in_file("/tmp/FW.txt"); // N.B., not ios::binary since you're reading text strings 
vector<string> vs(2); 
// Assume they are separated by just whitespace 
while(in_file >> vs[0] >> vs[1]) 
{ 
    component.push_back(vs); 
} 
관련 문제