如何在C ++中将文本文件读入二维动态向量?

时间:2012-04-13 20:02:06

标签: c++ linux

我有一个包含两列和未知行数的文本文件。所以我想将两列加载到动态二维向量中。这是我到目前为止所做的,它不起作用。如果这是一维的,我知道如何做到这一点。白色空格分隔两列。由于我正在阅读2列,我只需要2个大小为n的向量。

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(Red Hat)上运行

1 个答案:

答案 0 :(得分: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 );
}