C++ 如何将文本文件读入C+中的二元动态向量+;?
我有一个文本文件,有两列,行数未知。所以我想把两列加载到一个动态的二维向量中。这是我目前所拥有的,它不起作用。如果这是一维的,我知道怎么做。空白分隔两列。因为我在读2列,所以我只需要2个大小为n的向量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()) {
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向量?