2012-04-13 28 views
0

私は2つの列と不明な行数のテキストファイルを持っています。だから私は動的な2次元ベクトルに2つの列をロードしたい。ここに私がこれまで持っていたことはありますが、それは働いていません。これが一次元の場合、私はこれを行う方法を知っています。空白は2つの列を区切ります。私は2列を読んでいるので、サイズnのベクトルが2つ必要です。C++でテキストファイルを2次元動的ベクトルに読み込む方法は?

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

誰かがこれを動作させる方法を教えてください。また、元のファイルのように見えるので、二次元ベクトルを印刷する方法を私に教えていただけたら、それもいいでしょう。 Linux上で実行するためにこの必要性(レッドハット)

+0

あなたはそれが簡単に解析できるようになりcolumn1のとCOLUMN2を構成するかを決定するために既知のフォーマットを持っている場合。あなたは 'push_back()'や抽出 '' '演算子ではありません。私は 'std :: ifstream'の' read() 'メソッドも調べることをお勧めします – AJG85

+0

結果をsize-nベクトルのsize-2ベクトル、またはsize-nベクトルの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); 
} 
関連する問題