Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/132.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何将文本文件读入C+中的二元动态向量+;?_C++_Linux - Fatal编程技术网

C++ 如何将文本文件读入C+中的二元动态向量+;?

C++ 如何将文本文件读入C+中的二元动态向量+;?,c++,linux,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()) {

我有一个文本文件,有两列,行数未知。所以我想把两列加载到一个动态的二维向量中。这是我目前所拥有的,它不起作用。如果这是一维的,我知道怎么做。空白分隔两列。因为我在读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);
}
矢量分量;
_文件中的ifstream(“/tmp/FW.txt”,ios::binary);
//检查文件是否已打开
如果(!in_file.is_open())
{
cout component.push_back();
//组件。向后推_(在_文件中);
}
有人能告诉我怎么让它工作吗?另外,如果你能告诉我如何打印二维向量,使它看起来像原始文件,那也很好。这需要在Linux(Red hat)上运行

如何:

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 );
}
vector分量;
_文件中的ifstream(“/tmp/FW.txt”);//注意,不是ios::binary,因为您正在读取文本字符串
向量vs(2);
//假设它们仅由空格分隔
而(在_文件>>与[0]>>与[1]中)
{
组件。推回(vs);
}

如果您有一个已知的格式来确定column1和column2的组成,那么就更容易解析。您没有正确执行
push_back()
或提取
>
运算符。我还建议查看
std::ifstream
上的
read()
方法,您希望结果是size-n向量的size-2向量,还是size-2向量的size-n向量?